wxPython禁用帧大小调整

问题描述 投票:9回答:3

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

resize wxpython frame
3个回答
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
投票

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


0
投票

我使用这个程序尝试了上面的建议:

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()
© www.soinside.com 2019 - 2024. All rights reserved.