4

我正在使用 tkMessageBox.showinfo ( info at tutorialspoint ) 在我的程序中弹出警告。

仅当使用屏幕上的第二个 TopLevel 窗口(主窗口除外)调用警告时才会出现问题:在这种情况下,警告仍然隐藏在第二个 TL 窗口后面。

我试着这样称呼它:

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

但它不起作用。有任何想法吗?

4

2 回答 2

6

我认为消息框只能保证在其父级之上。如果您创建第二个顶层并且希望消息框位于该第二个窗口的顶部,则将该第二个窗口设置为该消息框的父级。

tl2 = tk.Toplevel(...)
...
tkMessageBox.showinfo("Say Hello", "Hello World", parent=tl2)
于 2012-09-20T14:50:20.877 回答
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()

这是使用 Python 2.7(32 位)在 Windows 7(64 位)上测试的。它产生这样的东西:

在此处输入图像描述

于 2012-09-20T13:31:45.480 回答