我正在尝试使用Tkinter创建一个GUI,您可以在其中键入两个数字并将它们添加到一起。我不确定如何在窗口中显示答案。另外,当我运行它时会出现一个错误: TypeError:+:'Entry'和'Entry'
的不支持的操作数类型from tkinter import *
window = Tk()
def add():
label = Label(window, text=entry1 + entry2)
entry1 = Entry(window, width=10)
entry2 = Entry(window, width=10)
button = Button(window, text='Click to add', command=add)
entry1.pack()
entry2.pack()
button.pack()
label.pack()
如果有人可以帮我修改我的代码,我会非常感激。
答案 0 :(得分:2)
您的代码包含许多错误。您无法直接使用“输入”字段,而是需要在“输入”字段中添加值。您还需要添加tkinter的主循环处理。
以下是一个没有任何错误处理的快速运行示例(如果您不输入其中一个Entry字段的值,则会失败),
import tkinter
mainWindow = tkinter.Tk()
mainWindow.title("Demo App")
mainWindow.geometry("640x480+200+200")
entry1 = tkinter.Entry(mainWindow,width=10)
entry2 = tkinter.Entry(mainWindow,width=10)
entry1.pack()
entry2.pack()
label = tkinter.Label(mainWindow,text="Click on add to add numbers")
label.pack()
def add_values():
result = int(entry1.get()) + int(entry2.get())
label['text'] = result
button = tkinter.Button(mainWindow,text="Add",command=add_values)
button.pack()
mainWindow.mainloop()
答案 1 :(得分:1)
您的代码几乎没有错误。第一个是你不能仅仅通过放置" +"来添加两个条目。他们之间的符号。您需要获取STRING的值,然后将其转换为INTEGER,添加它们,然后将ENTRY BOX的值设置为它。 第二个错误是你没有使用MAIN LOOP。如果没有MAIN LOOP,tkinter GUI将消失,因此要保持GUI使用LOOP。
使用记事本++。在Windows 7上测试.Python 2.7
from tkinter import *
window = Tk()
#name window
window.title('My Add')
#window sized
window.geometry('250x200')
def add():
sum = int(entry1.get()) + int(entry2.get())
entry3.delete(0,END)
entry3.insert(0,str(sum))
L1 = Label(window, text='Number 1:')
entry1 = Entry(window, width=20)
L1.pack()
entry1.pack()
L2 = Label(window, text='Number 2:')
entry2 = Entry(window, width=20)
L2.pack()
entry2.pack()
button = Button(window, text='Click to add', command=add)
button.pack()
L3 = Label(window, text='Sum of Number 1 and Number 2:')
entry3 = Entry(window, width=20)
L3.pack()
entry3.pack()
window.mainloop()