繁体   English   中英

设置wx.Frame大小(wxPython-wxWidgets)

[英]Set wx.Frame size (wxPython - wxWidgets)

我是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。

窗口大小(以像素为单位)

在调用app.MainLoop()之前添加此app.MainLoop()

import wx.lib.inspection
wx.lib.inspection.InspectionTool().Show()

这样,您可以轻松地查看应用程序中每个小部件的实际大小(和其他信息),如下所示:

小部件检查工具

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM