關於wx.panel中新增wx.button按鈕無顯示問題記錄
阿新 • • 發佈:2022-03-08
本次出現按鈕不顯示的原因為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)