【问题标题】:Create label in tkinter and update the Label with an int variable在 tkinter 中创建标签并使用 int 变量更新标签
【发布时间】:2019-08-08 10:08:53
【问题描述】:

我想创建一个标签并使用 int 值更新它,该值通过按下按钮更新,也在标签中。我还是 Python 新手,需要一些帮助:)

import tkinter as tk

class Main(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)

        self.integer = tk.IntVar()
        self.integer.set(0)

        tk.Button(self, text='Quit', command=self.destroy).pack()
        tk.Button(self, text='+', command=self.plus_one).pack()
        tk.Button(self, text='-', command=self.take_one).pack()

        self.entry0 = tk.Entry(self, textvariable=str(self.integer), justify="center", width=4)
        self.entry0.pack()

    def plus_one(self):
        x =  self.integer.get() + 1
        self.integer.set(x)

    def take_one(self):
        x =  self.integer.get() - 1
        self.integer.set(x)

app = Main()
app.mainloop()

【问题讨论】:

  • 问题是什么?该代码似乎工作正常。尽管importas Numbers 位非常违反直觉。我会使用import tkinter as tk 并相应地重构代码。
  • 你可以用 tk 替换数字 :) 我的问题是如何创建一个标签,只要我按下 + 和 - 按钮,Int 值就会更新。
  • 那么也许您应该相应地更新您的问题。为了弄清楚这一点,关于按钮按下与按钮释放的问题是什么?对我来说,代码在按键时起作用,但更新发生在按钮释放时。

标签: python python-3.x tkinter


【解决方案1】:

您可以像使用 Entry 小部件一样执行此操作:

import tkinter as tk

class Main(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)

        self.integer = tk.IntVar()
        self.integer.set(0)

        tk.Button(self, text='Quit', command=self.destroy).pack()
        tk.Button(self, text='+', command=self.plus_one).pack()
        tk.Button(self, text='-', command=self.take_one).pack()

        self.entry0 = tk.Entry(self, textvariable=str(self.integer), justify="center", width=4)
        self.entry0.pack()

        self.label0 = tk.Label(self, textvariable=str(self.integer))
        self.label0.pack()

    def plus_one(self):
        x =  self.integer.get() + 1
        self.integer.set(x)

    def take_one(self):
        x =  self.integer.get() - 1
        self.integer.set(x)

app = Main()
app.mainloop()

根据您的 cmets,如果您有兴趣在按下按钮而不是释放按钮时进行绑定,这已经解决了 here

【讨论】:

    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    相关资源
    最近更新 更多