【问题标题】:Tkinter Program for making a calculator用于制作计算器的 Tkinter 程序
【发布时间】:2013-07-20 13:01:01
【问题描述】:

我正在尝试制作一个简单的 GUI 计算器,一开始只用于加法/减法。我可以将结果打印到控制台,但我想将它打印到输入框,例如名字输入框,但不能这样做。如果您能提供帮助,我将不胜感激。(*请忽略我现在专注于功能的按钮的对齐方式,试图让它正确)

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

【问题讨论】:

    标签: python tkinter calculator


    【解决方案1】:

    如果您想将操作结果显示为标签的文本,只需创建一个新标签并使用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")
    

    【讨论】:

      【解决方案2】:

      要将条目文本添加到小部件,请使用insert 方法。要替换当前文本,您可以在插入新文本之前调用delete

      e = Entry(master)
      e.pack()
      
      e.delete(0, END)
      e.insert(0, "a default value")
      

      delete 方法中的第一个参数是要从哪个数字字符中删除,第二个参数也是要删除的位置。注意END 是一个 tkinter 变量。

      insert函数的参数也是插入文本的位置,第二个参数是插入的内容。

      以后,我建议您访问Effbot 并阅读有关您尝试使用的小部件以了解它的所有信息。

      【讨论】:

        猜你喜欢
        • 2021-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多