4

プログラムで警告をポップアップするためにtkMessageBox.showinfo (チュートリアルポイントの情報) を使用しています。

この問題は、画面上の 2 番目のトップレベル ウィンドウ (メイン ウィンドウとは別) で警告が呼び出された場合にのみ発生します。この場合、警告は 2 番目の TL ウィンドウの背後に隠れたままになります。

私はそれを次のように呼ぼうとしました:

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

しかし、うまくいきません。何か案は?

4

2 に答える 2

6

メッセージボックスは、親の上にあることが保証されているだけだと思います。2 番目のトップレベルを作成し、メッセージボックスをその 2 番目のウィンドウの上に配置したい場合は、その 2 番目のウィンドウをメッセージボックスの親にします。

tl2 = tk.Toplevel(...)
...
tkMessageBox.showinfo("Say Hello", "Hello World", parent=tl2)
于 2012-09-20T14:50:20.877 に答える
1

あなたが説明した問題はわかりません。以下に書いたコードは、2 番目のウィンドウを作成するウィンドウを作成するために最低限必要なコードです。showinfo2 番目のウィンドウは、メソッドを使用して情報ボックスを作成します。これ以外に何かあるのかな。(情報ウィンドウを隠そうとするために、ウィンドウを少し大きくしたことに注意してください。)

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 に答える