如何在wxPython中以编程方式取消最大化框架的最大化?

时间:2014-02-14 02:30:40

标签: python wxpython wxwidgets

假设我有一个简单的应用程序,如下所示:

import wx

app = wx.App()

frame = wx.Frame(None, -1, 'This is the frame title')
frame.Show()
frame.Maximize()    

app.MainLoop()

我可以在框架上调用一种方法来取消最大化吗?我尝试了frame.Unmaximize()frame.Maximize(False),但前者是undefined,而后者似乎在Ubuntu中默默地“失败”。

Here它说Maximize(False)是要走的路。我应该提交一个错误,还是我想念其他的东西?

2 个答案:

答案 0 :(得分:1)

在OSX,Win7和Ubuntu下试过这个程序:

import wx

app = wx.App()

frame = wx.Frame(None, -1, 'This is the frame title')
frame.Show()
frame.Maximize() 
frame.Maximize(False)   

app.MainLoop()

在OSX和Win7上,框架明显最大化然后最小化。

在Ubuntu(wxpython 2.8.11 gtk-unicode)上,Maximize命令显示为完全被忽略。我可以删除Maximize(False)行,但帧仍未最大化。

这是在Ubuntu 11.10上的xfwm4

对我来说看起来像个错误。但它也可能是一个窗口管理器的怪癖。


有趣的是,google发现了一个错误报告,其中Frame.Maximize()仅适用于Windows。但它已经11岁了。也许还没有添加Linux:)

答案 1 :(得分:1)

您也可以尝试Restore()。虽然在MSW和OS X下它与Maximize(false)完全相同,但在wxGTK中它的实现方式略有不同,所以它甚至可以在Ubuntu下工作。