为什么在没有调用函数的情况下创建窗口?

时间:2013-03-13 06:43:39

标签: python tkinter

我是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()

这给出了以下输出:

http://i48.tinypic.com/675xf7.jpg

移动窗户后:

http://i50.tinypic.com/1431f2b.jpg

DOUBT

为什么second窗口在没有调用函数say_hi()的情况下打开?

如何解决这个问题?

如何在当前窗口中启动新窗口或框架或在当前窗口中打印标签,以便仅在按下按钮后才打印HI

我不想在控制台上打印它,因为大多数时候它都没有被注意到。

SPECS

Visual Python Tkinter IDE 2.6

2 个答案:

答案 0 :(得分:2)

()之后删除say_hisay_hi()将调用该函数:

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

答案 1 :(得分:0)

代码中有错误:

()

say_hi之后,command将不在那里

修改后的代码如下:

##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()