wxPython:在禁用调整大小时最大化帧(Linux)

wxPython:在禁用调整大小时最大化帧(Linux),python,linux,wxpython,frame,maximize,Python,Linux,Wxpython,Frame,Maximize,在Linux上,如何禁用重新调整大小,但同时最大化界面 我尝试了以下方法,但没有最大化: style = wx.DEFAULT_FRAME_STYLE & ~wx.MAXIMIZE_BOX ^ wx.RESIZE_BORDER) style = wx.MAXIMIZE | wx.DEFAULT_FRAME_STYLE & ~wx.MAXIMIZE_BOX ^ wx.RESIZE_BORDER 编辑: 已尝试在禁用调整大小的情况下最大化(),但仍然无效。我的版本:Linux、P

在Linux上,如何禁用重新调整大小,但同时最大化界面

我尝试了以下方法,但没有最大化:

style = wx.DEFAULT_FRAME_STYLE & ~wx.MAXIMIZE_BOX ^ wx.RESIZE_BORDER)

style = wx.MAXIMIZE | wx.DEFAULT_FRAME_STYLE & ~wx.MAXIMIZE_BOX ^ wx.RESIZE_BORDER
编辑:

已尝试在禁用调整大小的情况下最大化(),但仍然无效。我的版本:Linux、Python 2.4、wxPython 2.8.12.1


(style=wx.MAXIMIZE适用于Windows,但不适用于Linux)

您已经非常接近了。您只是忘记调用Maximize()。见下文:

import wx

########################################################################
class NoResizeFrame(wx.Frame):
    """
    This frame cannot be resized. It can only be minimized, maximized
    and closed
    """

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        no_resize = wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | 
                                                wx.RESIZE_BOX | 
                                                wx.MAXIMIZE_BOX)
        wx.Frame.__init__(self, None, title="No Resize", style=no_resize)
        panel = wx.Panel(self)

        self.Show()
        self.Maximize()

#----------------------------------------------------------------------
if __name__ == "__main__":
    app = wx.App(False)
    frame = NoResizeFrame()
    app.MainLoop()
您可能会发现我的本教程有助于更好地理解框架样式标志:

或者这篇稍旧的关于最大化:


如果不允许调整大小,则不能使用self.Maximize()。我刚刚在Linux、Python2.4、Wxpython2.8.12.1oh上试过你的代码……对不起。我不知道你想最大化和禁用调整大小。因为这些操作是互斥的,所以不能这样做。你最好问操作系统监视器的分辨率是多少,并相应地设置帧的大小。我找不到任何样本来获取Linux和Windows的监视器分辨率。我使用的是Python2.4,但界面一开始并不以中心为中心。我猜,使用diabling resize会使center()和Maximize()也变得无用