如何禁用用户调整大小的wxFrame?如果在创建框架时有一个标记,那么它是什么?
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)
您可以使用SetSizeHints(或SetMaxSize和SetMinSize)来限制最大和最小大小或
我使用这个程序尝试了上面的建议:
import wx
app = wx.App()
frame = wx.Frame(None, style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)
frame.Show()
app.MainLoop()
......但它没有用。框架仍然可以调整大小。
用“wx.DEFAULT_FRAME_STYLE&(~wx.RESIZE_BORDER)”替换样式值也不起作用。框架仍然可以调整大小。
使用SetMaxSize()和SetMinSize()会阻止调整大小,但调整大小箭头仍会出现在Mac OS X上。
例:
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()
3-20-2019更新: https://wxpython.org/Phoenix/docs/html/wx.Frame.html 根据此页面禁用帧大小调整使用此:
style = wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)
使用此示例程序,我可以在Mac OS 10.12上使调整大小箭头完全消失:
import wx
app = wx.App()
frame = wx.Frame(None, style = wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX))
frame.Show()
app.MainLoop()