python-2.7 - 运行时 Tkinter 按钮 'not defined'

标签 python-2.7 button tkinter

我正在按照在线快速指南开始在 Python (2.7) 中使用 Tk,到目前为止,我有以下代码:

from Tkinter import *

root = Tk()
root.title("Note Taker")

root.mainloop()

button1 = Button(root, text="button1", command = Button1)
button2 = Button(root, text="button2", command = Button2)
button3 = Button(root, text="button3", command = Button3)


text = Entry(root)
listbox = Listbox(root)


text.pack()
button1.pack()
button2.pack()
button3.pack()
listbox.pack()


def Button1():
    listbox.insert(END, "button1 pressed")

def Button2():
    listbox.insert(END, "button2 pressed")

def Button3():
    text_contents = text.get()
    listbox.insert(END, text_contents)
    text.delete(0,END)

但是,当我运行此命令时,GUI 已加载,但没有显示任何按钮,而是给出了此“NameError”:

button1 = Button(root, text="button1", command = Button1)
NameError: name 'Button1' is not defined

我确定这纯粹是我的错误,但是可以更改什么才能使其正确运行?

最佳答案

移动

def Button1():
    listbox.insert(END, "button1 pressed")

之前

button1 = Button(root, text="button1", command=Button1)

因为 command = Button1 引用 Button1

当然,对 Button2Button3 执行相同的操作。


同时移动

root.mainloop()

到脚本的底部,因此在定义 Tkinter 小部件之前,控制流不会陷入事件循环中。


from Tkinter import *

root = Tk()
root.title("Note Taker")


def Button1():
    listbox.insert(END, "button1 pressed")


def Button2():
    listbox.insert(END, "button2 pressed")


def Button3():
    text_contents = text.get()
    listbox.insert(END, text_contents)
    text.delete(0, END)


button1 = Button(root, text="button1", command=Button1)
button2 = Button(root, text="button2", command=Button2)
button3 = Button(root, text="button3", command=Button3)

text = Entry(root)
listbox = Listbox(root)

text.pack()
button1.pack()
button2.pack()
button3.pack()
listbox.pack()

root.mainloop()

关于python-2.7 - 运行时 Tkinter 按钮 'not defined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23934192/

相关文章:

python - 将数据框的第三列放在下一行

python - 执行定义的 Python 代码需要很长时间

python - 如果字符串有重叠区域,则连接它们

python - Tkinter 网格管理器(类型错误)

python - 如何定义通过另一个函数内的 for 循环创建的全局变量?

ios - 如何根据屏幕宽度动态设置具有不同字符串长度的多个按钮?

javascript - 无法在 JavaScript 中添加 onclick 事件

html - 单击以显示 CSS 工具提示

python - 在文件对话框中设置的 tkinter 文件模式

python - 'MyApp' 没有属性 'label_text' 是什么意思?在哪里添加 label_text?