2013-02-23 14 views
6

engelle İki Windows'un bu gibi bazı basit bir kod olduğunu varsayalım: Toplevel(root) pencere ve Tk() penceresi:toplevel: Açılış

from Tkinter import * 
root = Tk() 
app = Toplevel(root) 
app.mainloop() 

Bu iki pencere açar.

Tk() penceresinin (root) açılmasını önlemek mümkün mü? Öyleyse nasıl? Sadece üst seviyeyi istiyorum. Bunun olmasını istiyorum çünkü root'un Toplevel'unun birden fazla penceresinin açılacağı bir program yapıyorum.

Teşekkürler!

cevap

10

withdraw() yöntemi pencereyi ekrandan kaldırır.
iconify() yöntemi pencereyi en aza indirir veya bir simgeye dönüştürür.
deiconify() yöntemi pencereyi yeniden çizecek ve/veya etkinleştirecektir.

withdraw()'u seçerseniz, sınamadan önce programdan çıkmanın yeni bir yolunu düşündüğünüzden emin olun.
örn.

from Tkinter import * # tkinter in Python 3 

root = Tk() 
root.withdraw() 

top = Toplevel(root) 
top.protocol("WM_DELETE_WINDOW", root.destroy) 

but = Button(top, text='deiconify') 
but['command'] = root.deiconify 
but.pack() 

root.mainloop() 

protocol() yöntem


toplevel pencerenin kapatma düğmesi basıldığında çağrılacak bir fonksiyonu kaydına kullanılabilir. Bu durumda çıkmak için destroy() kullanabiliriz.

İlgili konular