2011-09-27 84 views
5

有沒有一種方法,我可以告訴GTK自動調用gtk.main_quit()當應用程序的最後一個打開的窗口被關閉/銷燬?如何退出一個PyGTK的應用程序關閉最後一個窗口之後/銷燬

如果沒有直接的特性,實現了這個功能,我能想到如下: 在窗口的破壞方法:如果空退出,在這個過程中得到打開的窗口列表。有沒有辦法得到這樣的清單?

明顯的解決辦法是手動跟蹤所有打開的窗口,但我想如果可能避免這種情況。

+1

你試過看着[PyGTK的參考(窗口得到-toplevels)](HTTP://庫.gnome.org/devel的/ pygtk的/穩定/類gdkwindow.html#功能GDK - 窗口 - 得到 - toplevels) – spicavigo

回答

7

主窗口的破壞信號必須連接到GTK main_quit:

window.connect("destroy", gtk.main_quit) 
+1

我覺得OP是指在有多個主窗口的情況。想一想爲每個活動文檔打開一個新窗口的文字編輯器。 – patrys

+0

如果是這樣的話,可以只計算打開的窗口,在創建時將一個全局變量添加到一個全局變量中,並且在銷燬時應該減去一個,而不需要保留該列表。 – Louis

+1

如果你的應用符合邏輯,你也可以使用GtkAppliction。這會更好,GtkApplication會爲你處理這個邏輯。 – erick2red

2

使用方法gtk.main_level()讓主循環的當前嵌套級別。嵌套級別增加調用gtk.main()函數,並減少通過調用gtk.main_quit()函數

相關問題