我是wxPython的新手,我在为框架和窗口(窗口小部件)设置给定大小时发现了一些问题。我已经将问题分离到最简单的情况,我尝试创建一个250x250像素的帧。
运行代码我得到一个实际尺寸为295宽×307高的窗口(考虑到Windows的顶部窗口栏)
我在Windows 10中使用Python 2.7。
我错过了什么?
#!/bin/env python
import wx
# App Class
class MyAppTest7(wx.App):
def OnInit(self):
frame = AppFrame(title = u'Hello World', pos=(50, 60), size=(250, 250))
frame.Show()
self.SetTopWindow(frame)
return True
# AppFrame
class AppFrame(wx.Frame):
def __init__(self, title, pos, size):
wx.Frame.__init__(self, parent=None, id=-1, title=title, pos=pos, size=size)
if __name__ == '__main__':
app = MyAppTest7(False)
app.MainLoop()
进一步显示问题的附加测试:
#!/bin/env python
import wx
class MyApp(wx.App):
def OnInit(self):
self.frame = MyFrame(None, title="The Main Frame")
self.SetTopWindow(self.frame)
self.frame.Show(True)
return True
class MyFrame(wx.Frame):
def __init__(self, parent, id=wx.ID_ANY, title="", pos=wx.DefaultPosition, size=(400,100), style=wx.DEFAULT_FRAME_STYLE, name="MyFrame"):
super(MyFrame, self).__init__(parent, id, title, pos, size, style, name)
self.panel = wx.Panel(self)
if __name__ == "__main__":
app = MyApp(False)
app.MainLoop()
结果:
正如您所看到的,显示的窗口(框架)有482个像素(参见Paint的底部栏) - 而不是预期的400个。