【问题标题】:how to update a variable in Tkinter如何更新 Tkinter 中的变量
【发布时间】:2019-02-10 17:54:09
【问题描述】:

我是 tkinter 的新手。我想在 GUI 的两个不同条目中写两个数字,并在显示屏上查看它们更新的减法结果。这是我的代码:

from tkinter import *  
window = Tk()  

lb1 = Label(window,text="variable 1") 
lb1.pack()

name1=IntVar()  
en1=Entry(window, textvariable=name1)  
en1.pack()

lb2 = Label(window,text="variable 2")  
lb2.pack()

name2=IntVar()  
en2=Entry(window, textvariable=name2)  
en2.pack()

subt=IntVar()  
subt=name1.get()-name2.get()  
label_subt=Label(window, text=subt).pack()

如何更新label_subt

【问题讨论】:

  • 您阅读过任何文档吗?有更新标签的文档,也有更新与标签相关的变量的文档。
  • 不是重复的,但这个问题应该解释你需要做什么:stackoverflow.com/q/17457178/8201979

标签: python python-2.7 user-interface tkinter


【解决方案1】:

在实际将其设置为标签之前,您将subt 变量更改为减法的结果。不要那样做!另外,您将其设置为text,而不是textvariable

subt = IntVar()
Label(window, textvariable=subt).pack()

(注意pack() 的结果不是Label,而是None,所以要么像以前那样将它移到单独的行,或者只是不将它绑定到你无论如何都不需要。)

接下来,您可以使用set 方法和bind 定义一个回调函数来更新subt 变量的值,该回调对任何按键按下进行回调。不过,您可能希望缩小范围。

def update(event):
    subt.set(name1.get() - name2.get())
window.bind_all("<Key>", update)

【讨论】:

    【解决方案2】:

    您可以尝试在每次减法后调用标签上的配置方法。您必须使用 entry.get() 方法来获取每个条目的字符串。并且不要忘记使用 int() 将其转换为整数,以便进行减法运算,否则会出错

    label_subt.config(text=result)

    【讨论】:

      猜你喜欢
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 2015-11-01
      • 2020-05-04
      • 2020-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多