2011-09-27 37 views
5

Uygulamanın son açık penceresi kapatıldığında/yokedildiğinde, otomatik olarak gtk.main_quit() numaralı telefonu aramak için gtk'ye söyleyebileceğim bir yol var mı?Son pencere kapatıldıktan/sonlandırıldıktan sonra bir pygtk uygulaması nasıl kapatılır

Bu işlevsellik sunan doğrudan özellik yoksa, aşağıdakileri düşünebilirim: Pencerenin yok etme yönteminde: boş bırakma işleminde açık pencerelerin bir listesini alın. Böyle bir liste almanın bir yolu var mı?

Açık olan çözüm, tüm açık pencereleri manuel olarak takip etmekti, ancak mümkünse bunu önlemek istiyorum.

+1

[PyGTK referansı (window-get-toplizeleri)] (http: // kitaplığına bakın) denediniz mi? .gnome.org/devel/pygtk/stable/class-gdkwindow.html # function-gdk - window-get-toplevels) – spicavigo

cevap

7

ana pencerenin yok sinyal GTK main_quit bağlı olmalıdır:

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

OP'nin birden fazla ana pencerenin bulunduğu bir durum olduğunu düşünüyorum. Her aktif belge için yeni bir pencere açan bir kelime editörü düşünün. – patrys

+0

Bu durumda, sadece açılmış pencereleri sayabiliriz, imha edildiğinde bir tane oluşturulduğunda ve çıkarıldığında bir global değişkeni ekleyerek listeyi tutmaya gerek yoktur. – Louis

+1

Eğer uygulama mantığa uyuyorsanız GtkAppliction'ı da kullanabilirsiniz. Bu daha iyi olacak ve GtkApplication sizin için bu mantığı ele alacaktır. – erick2red

2

ana döngü geçerli yuvalama düzeyini elde etmek için metot gtk.main_level() kullanın. İç içe geçme düzeyi, gtk.main() işlevi çağrılarak artırılır ve gtk.main_quit() işlevi çağrılarak azaltılır.

İlgili konular