0

私はTkinterプログラミングに不慣れです。

データ

私は次のtkinterコードを持っています:

##Program to print something or exit

def say_hi():
    second = Tk()
    Label1 = Label(second,text="HI!")
    Label1.pack()
  
from Tkinter import *
  
root = Tk()
  
r = Button(root,text="QUIT",fg="red",command=quit)
r.pack()
  
b = Button(root,text="Say something",fg="red",bg="black",command=say_hi())
b.pack()

root.mainloop()

これにより、次の出力が得られました。

そして、窓を後ろに動かすと:

疑い

関数が呼び出されsecondずにウィンドウが開くのはなぜですか?say_hi()

これを解決する方法は?

HIボタンが押された後にのみ印刷するように、現在のウィンドウで新しいウィンドウまたはフレームを開始したり、現在のウィンドウでラベルを印刷したりするにはどうすればよいですか。

ほとんどの場合、見過ごされてしまうので、コンソールに印刷したくありません。

仕様

Visual Python Tkinter IDE 2.6

4

2 に答える 2

2

()say_hiに削除say_hi()すると、関数が呼び出されます。

b = Button(root,text="Say
        something",fg="red",bg="black",command=say_hi) b.pack()
于 2013-03-13T06:51:25.543 に答える
0

コードに誤りがあります:

の後に()はありませんsay_hicommand

変更されたコードは次のとおりです。

##Program to print something or exit

def say_hi():
    second = Tk()
    Label1 = Label(second,text="HI!")
    Label1.pack()

from Tkinter import *

root = Tk()

r = Button(root,text="QUIT",fg="red",command=quit)
r.pack()

b = Button(root,text="Say something",fg="red",bg="black",command=say_hi)
b.pack()

root.mainloop()
于 2013-03-13T06:59:20.557 に答える