我正在尝试制作一个简单的GUI计算器,仅用于开头的加法/减法。我能够将结果打印到控制台,但我想将它打印到Entry框,例如First Name输入框,但不能这样做。如果你能提供帮助我真的很感激。(*请忽略我现在专注于功能的按钮的对齐,试图做到正确)
from Tkinter import *
import tkMessageBox
import sys
class scanner:
list1 = []
def __init__(self,parent):
self.entrytext = StringVar()
self.entrytext1 = StringVar()
Label(root, text="first name", width=10).grid(row=0,column=0)
Entry(root, textvariable=self.entrytext, width=10).grid(row=0,column=1)
Label(root, text="last name", width=10).grid(row=1,column=0)
Entry(root, textvariable=self.entrytext1, width=10).grid(row=1,column=1)
Button(root, text="ADD", command=self.add).grid()
Button(root, text="SUBTRACT", command=self.subtract).grid()
def add(self):
global a
global b
self.a=int(self.entrytext.get())
self.b=int(self.entrytext1.get())
print "result is", self.a+self.b
def subtract(self):
global a
global b
self.a=int(self.entrytext.get())
self.b=int(self.entrytext1.get())
print "result is", self.a-self.b
root= Tk()
root.geometry("300x300")
calc = scanner(root)
root.mainloop()
答案 0 :(得分:0)
如果要将操作结果显示为标签的文本,只需创建一个新标签并使用text
选项和要打印的字符串作为其值进行配置。作为旁注,您不需要global
语句,也不需要使用实例变量。但是,检查条目的内容实际上是有效数字非常重要:
def __init__(self,parent):
# ...
self.result = Label(root, text='')
self.result.grid(row=4, column=0)
def add(self):
try:
a = int(self.entrytext.get())
b = int(self.entrytext1.get())
self.result.config(text=str(a+b))
except ValueError:
print("Incorrect values")
答案 1 :(得分:0)
要向窗口小部件添加条目文本,请使用insert
方法。要替换当前文本,可以在插入新文本之前调用delete
。
e = Entry(master)
e.pack()
e.delete(0, END)
e.insert(0, "a default value")
delete
方法中的第一个参数是要从中删除的数字字符,第二个参数也是要删除的位置。注意END
是一个tkinter变量。
insert
函数的参数也是插入文本的位置,第二个参数是要插入的参数。
将来,我建议您前往Effbot并阅读您尝试使用的小部件,以了解相关信息。