其他分享
首页 > 其他分享> > 关于wx.panel中添加wx.button按钮无显示问题记录

关于wx.panel中添加wx.button按钮无显示问题记录

作者:互联网

本次出现按钮不显示的原因为pos坐标理解出错:

1、按钮之所没有出现,是因为将全局坐标作为按钮pos的定位,导致在有限的panel布局内无法显示出按钮;

2、经过调试发现当pos=(-1,-1)时,按钮显示在左上角;

3、不断调整坐标位置,当self.button2与self.button1的pos分别为pos=(-1,100)与pos=(400,100)时self.button2按钮得以显示,随即调整-1为400,发现按钮坐标进入理想区域位置;

4、总结回顾发现,wx.button中pos是基于所属panel的,而不是基于frame的。

         
        self.panel1 = wx.Panel(self,pos=(-1,40),size=(900,150))
        self.panel1.SetBackgroundColour("#00afff")
               
        #wx.StaticText(panel1,label=dlg.GetValue(),pos=(-1,-1))
        wx.StaticText(self.panel1,label=response,pos=(-1,-1))
        #wx.StaticText(panel1,label="霸霸是9527",pos=(-1,-1))
        
        self.button1 = wx.Button(self.panel1,wx.NewId(),label="关闭程序",pos=(400,100),size=(70,35))
        
        #绑定按钮事件
        self.Bind(wx.EVT_BUTTON, self.OnButtonClick,self.button1)        
        #绑定窗口的关闭事件
        self.Bind(wx.EVT_CLOSE,self.OnCloseWindow)
        #绑定按钮的单击事件
        self.Bind(wx.EVT_BUTTON,self.OnCloseMe,self.button1)        
        

        self.panel2 =wx.Panel(self,pos = (-1,190),size=(900,150)) 
        self.panel2.SetBackgroundColour("#FAAC58")
        self.button2 = wx.Button(self.panel2,wx.NewId(),label="从心变红",pos=(400,100),size=(70,30))
        #绑定按钮事件
        self.Bind(wx.EVT_BUTTON, self.OnButtonClick,self.button2)       
        #绑定鼠标位于其上事件
        self.button2.Bind(wx.EVT_ENTER_WINDOW,self.OnEnterWindow)
        #绑定鼠标离开事件
        self.button2.Bind(wx.EVT_LEAVE_WINDOW,self.OnLeaveWindow)

 

标签:Bind,button,pos,button2,按钮,wx,self,panel
来源: https://www.cnblogs.com/babashi9527/p/15980084.html