2010-12-02 37 views
0

下禁用可調整大小的Tkinter窗口最大化按鈕尋找諮詢如何在Windows下刪除或禁用可調整大小窗口的最大化按鈕。我正在使用Python 2.7 for Windows。刪除或Windows

背景:我有最小和最大尺寸通過窗口的最小尺寸()和MAXSIZE()方法設置了可調整大小的窗口。當用戶單擊最大化按鈕時,窗口移動到顯示屏的左上角。這對我的用戶來說非常混亂,所以我想阻止這種行爲。

我的研究表明幾種方法來禁用最大化按鈕 - 但沒有這些技術似乎適用於可縮放窗口?

  1. 防止通過調整大小(False,False)方法調整窗口大小。

  2. 通過overrideredirect(true)方法刪除所有窗口的控件(和邊境)。

  3. 使用神祕的瞬態(1)方法(這引發了Windows下一個例外)。

  4. 綁定窗口的事件,並嘗試阻止最大化(更新:當我們的處理程序檢測到最大化事件時,Tkinter已經最大化了窗口,返回「break」或使用幾何體(size | position) - 位置窗口都被忽略)

  5. 我已經發布了一個關於Python Win32 API郵件列表的問題,看看我們是否可以使用Windows API調用來通過我相信的hWnd句柄來禁用窗口的最大化按鈕( ?)Tkinter暴露。

有沒有一種方法可以捕獲最大化事件(在Tkinter執行它之前)?

馬爾科姆

回答

3

一種可能性是設置窗口的工具窗口,但這個還帶有副作用;該窗口將不再出現在任務欄中,並且將具有薄標題欄。它仍然能夠在邊緣調整大小。

root.attributes("-toolwindow", 1) 

有關根屬性的更多信息,請參閱this guidebook