2016-09-10 125 views
0

我想在wx.Frame中獲得給定大小的wx.Panel。在wx.Frame中創建一個wx.Panel具有特定的寬度和高度(wxPython - wxWidgets)

我已經嘗試了下面的代碼,明確指定wx.Panel大小,但沒有成功。

當我運行該應用程序時,得到wx.Panel的寬度大於100像素。

Actual wx.Panel width is about 125pixels instead of 100

可能有人幫我鑑定一下是不是正確這裏使用?

#!/bin/env python 
import wx 

# App Class 
class MyAppTest6(wx.App): 

    def OnInit(self): 

     frame = AppFrame(title = u'Hello World', pos=(50, 60), size=(150, 250)) 
     frame.Show() 
     #self.SetTopWindow(frame) 
     return True 

# Form Panel, 300 pixels Panel 
class Form(wx.Panel): 

    def __init__(self, parent): 
     wx.Panel.__init__(self, parent, size=(100, 100)) 

     self.SetBackgroundColour('RED') 
     self.SetInitialSize(
      (100,100) 
     ) 
     self.SetSize(
      (100,100) 
     ) 

# AppFrame 
class AppFrame(wx.Frame): 
    def __init__(self, title, pos, size): 
     wx.Frame.__init__(self, None, -1, title, pos, size) 

     # Define color 
     self.SetBackgroundColour('LIGHTGREY') 

     # Add elements 
     self.form = Form(self) 

     # Layout 
     sizer = wx.BoxSizer(wx.HORIZONTAL) 
     sizer.AddStretchSpacer() 
     sizer.Add(self.form, 0, wx.CENTER) 
     sizer.AddStretchSpacer() 
     self.SetSizer(sizer) 


if __name__ == '__main__': 
     app = MyAppTest6(False) 
     app.MainLoop() 

回答

0

正如你在this問題看,你可以在調用app.MainLoop(前添加此):

import wx.lib.inspection 
wx.lib.inspection.InspectionTool().Show() 
相關問題