gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 03:42:10 24 4
gpt4 key购买 nike

我是 wxPython 的新手,在为框架和窗口(小部件)设置给定大小时发现一些问题。我已将问题隔离为最简单的情况,即我尝试创建 250x250 像素的框架。

运行代码,我得到一个实际大小为 295 宽 x 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。

Window size measured in pixels

最佳答案

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

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

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

Widget Inspection Tool

关于python - 设置wx.Frame大小(wxPython - wxWidgets),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39427319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com