wxPython禁用帧大小调整

时间:2011-07-26 12:16:35

标签: resize wxpython frame

如何禁用用户调整大小的wxFrame?如果在创建框架时有一个标记,那么它是什么?

3 个答案:

答案 0 :(得分:17)

default window style is wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN

如果从中删除wx.RESIZE_BORDER,您将获得一个无法调整大小的帧。

这样的事情应该做的事情:

wx.Frame(parent, style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)

答案 1 :(得分:1)

您可以使用SetSizeHints(或SetMaxSize和SetMinSize)来限制最大和最小尺寸或

答案 2 :(得分:0)

我使用此程序尝试了以上建议:

@objc func advancePage(_ note:NSNotification){

...但是没有用。框架仍可调整大小。

用“ wx.DEFAULT_FRAME_STYLE&(〜wx.RESIZE_BORDER)”替换样式值也不起作用。框架仍可调整大小。

使用SetMaxSize()和SetMinSize()确实会阻止调整大小,但是在Mac OS X上仍然会出现调整大小箭头。

示例:

import wx

app = wx.App()
frame = wx.Frame(None, style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)
frame.Show()
app.MainLoop()

2019年3月20日更新:
https://wxpython.org/Phoenix/docs/html/wx.Frame.html
根据此页面禁用帧大小调整,请使用以下方法:

import wx

app = wx.App()
frame = wx.Frame(None, size=(400,300))
frame.SetMaxSize(wx.Size(400,300))
frame.SetMinSize(wx.Size(400,300))
frame.Show()
app.MainLoop()

使用此示例程序,我能够使调整大小箭头在Mac OS 10.12上完全消失:

style = wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)