2012-09-19 68 views
3

我使用tkMessageBox.showinfo(info at tutorialspoint)彈出我的程序的警告。解除tkMessageBox

的問題發生,只有當警告被調用屏幕上的第二頂層窗口(除了主一個):在這種情況下,警告保持隱藏所述第二TL窗口的後面。

我想這樣稱呼它:

tkMessageBox.showinfo(title='Warning',message=s).lift() 

,但它不工作。有任何想法嗎?

回答

5

我覺得消息框永遠只能保證是其父以上。如果您創建第二個頂層並且您希望消息框位於第二個窗口之上,請將第二個窗口設置爲消息框的父級。

tl2 = tk.Toplevel(...) 
... 
tkMessageBox.showinfo("Say Hello", "Hello World", parent=tl2) 
+0

在我的情況'父= ...',在我的情況下解決了頂層窗口關閉/終止/(隱藏?)*無故*。這也是一個無視的問題。感謝您的解決方案! – danger89

1

我沒有看到你所描述的問題。我在下面寫的代碼只是創建一個創建第二個窗口的窗口所需的最小值。第二個窗口使用showinfo方法創建信息框。我想知道你是否還有其他的東西。 (請注意,我做了窗口,以試圖掩蓋信息窗口有點大。)

from Tkinter import Tk, Button, Toplevel 
import tkMessageBox 

top = Tk() 
def make_window(): 
    t = Toplevel(top) 
    t.title("I'm Window 2. Look at me too!") 
    B2 = Button(t, text = "Click me", command = hello) 
    B2.pack() 
    t.geometry('500x500+50+50') 

def hello(): 
    tkMessageBox.showinfo("Say Hello", "Hello World") 

B1 = Button(top, text = "New Window", command = make_window) 
B1.pack() 

top.title("I'm Window 1. Look at me!") 
top.geometry('500x500+100+100') 
top.mainloop() 

這是在Windows 7(64位)使用Python 2.7(32位)進行測試。它生產的是這樣的:

enter image description here