Nasıl belirli bir başlıkla bir pencere Tk'de zaten açık olup olmadığını bilmek?

oy
7

Sadece Komut satırına geçirilen metni içeren bir ileti kutusu açılır biraz piton senaryoyu yazılı ettik. Bir önceki çağırma kapsamında üzerinde penceresi açık olmadığı durumlarda bunu pop up istiyorum.

from Tkinter import *
import tkMessageBox

root = Tk()
root.withdraw() 

# TODO not if a window with this title exists
tkMessageBox.showinfo(Key you!,  .join(sys.argv[1:]))

Bir fikrin nasıl kontrol edilir?

Oluştur 05/09/2008 saat 10:07
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
2

İstediğin inanıyoruz:

if 'normal' != root.state():
    tkMessageBox.showinfo("Key you!", " ".join(sys.argv[1:]))
Cevap 05/09/2008 saat 15:19
kaynak kullanıcı

oy
0

Önceki cevabı Verdiğiniz kod buna göre çalışır. Bunu answerer ki "sois bête et disiplinini" kuralı ile uyumludur, çünkü o eklemek vermedi çalışmıyor demek root.mainloop()Sorunuzun ya yok çünkü onun koduna.

Daha sonra satırı ekleyerek, olay döngü nedeniyle bazı nedenlerden dolayı, aşağıdaki gibi "içine kapanık" sadece tırnak test etmelidir:

import tkinter as tk
from tkinter import messagebox
import sys


root = tk.Tk()
root.withdraw()

if 'withdrawn' != root.state():
   messagebox.showinfo("Key you!", sys.argv[1:])


root.mainloop()

Not: aksi takdirde Terminal oturumu kadar askıda kalacaktır Bu kodu çalışmıyor. Bu rahatsızlık aşmak için, birini kullanarak pencere durumuna sıfırlamak zorunda kalacak root.state("normal")Tamam butonuna bir tıklama gerçekleştiğinde sanki mesaj kutusuna yol açacaktır hangi kaybolmaya veyaroot.iconify() içinden sağ tıklayarak asmak için Terminal oturumu durdurabilir OS görev çubuğunda görünen Tkinter simgesi.

Cevap 19/11/2017 saat 06:21
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more