使用Tkinter构建GUI

时间:2017-09-24 17:11:23

标签: python user-interface tkinter

我正在尝试使用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()

如果有人可以帮我修改我的代码,我会非常感激。

2 个答案:

答案 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()

enter image description here