wxPython Отключить изменение размера кадра - PullRequest
9 голосов
/ 26 июля 2011

Как отключить изменение размера wxFrame пользователем? Если при создании фрейма есть флаг, что это?

Ответы [ 3 ]

17 голосов
/ 26 июля 2011

Стиль окна по умолчанию: 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 голос
/ 26 июля 2011

Вы можете использовать SetSizeHints (или SetMaxSize и SetMinSize), чтобы ограничить максимальный и минимальный размеры или th

0 голосов
/ 16 марта 2019

Я попробовал приведенное выше предложение с помощью этой программы:

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()
...