2014-02-14 15 views
1

比方說,我有一個簡單的應用程序,如下列:如何以編程方式取消最大化wxPython中的框架?

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)是要走的路。是否有我應該提交的錯誤,或者有什麼我在這裏錯過的東西?

+1

FYI Frame.Maximize(False)可以在OSX和Win7上使用python 2.7.x和wxpython 3.0.0 – GreenAsJade

+1

謝謝你的回答。今天我會再玩一次(只是爲了確保),然後我可能會提交一個bug ... – Asotos

回答

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)上,最大化命令顯示完全被忽略。我可以刪除最大化(假)行,並且幀不會最大化。

這是xfwm4在Ubuntu 11.10

看起來像我的錯誤。但它也可能是一個窗口管理器的怪癖。


有趣的是,谷歌發現一個錯誤報告,其中Frame.Maximize()僅適用於Windows。但它已經11歲了。也許Linux還沒有添加:)

1

你也可以嘗試Restore()。在MSW和OS X下,它與Maximize(false)完全一樣,在wxGTK中它的實現方式稍有不同,所以即使在Ubuntu下它也可以工作。

+0

謝謝!我給了它一個鏡頭,但仍然沒有... – Asotos

+0

然後它是另一個標準GTK + API的Ubuntu破壞:-(不幸的是,我們無法做到這一點,如果一個操作系統故意阻止我們使用的API工作,唯一的我們(和我們的用戶)可以做的就是向他們抱怨 - 但在Ubuntu情況下這是完全沒用的...... –

相關問題