用于制作计算器的Tkinter程序

时间:2013-07-20 13:01:01

标签: python tkinter calculator

我正在尝试制作一个简单的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() 

2 个答案:

答案 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并阅读您尝试使用的小部件,以了解相关信息。