按下按钮时更新Tkinter中的标签

时间:2015-06-10 17:52:26

标签: python tkinter

我想创建一个“程序”,当你按下一个按钮并打印出一个变量时更新一个标签,但是我所拥有的代码不起作用。有人可以帮助我吗?

提前致谢!

from Tkinter import *

root = Tk()
x = 0


def test():
    global x
    x += 1
    label_1.update()

label_1 = Label(root, text=x)
button_1 = Button(root, text='Click', command=test)
button_1.grid(row=0, column=0)
label_1.grid(row=0, column=1)

root.mainloop()

3 个答案:

答案 0 :(得分:4)

取代label_1.update()doesn't do anything close to what you think it does},reconfigure the widgetlabel_1.config(text=x)

答案 1 :(得分:1)

另一种解决方案:使用textvariable标记和Tkinter IntVar。

示例:

from Tkinter import *

root = Tk()
x = IntVar()


def test():
    global x
    x.set(x.get() + 1)

label_1 = Label(root, text=x.get(), textvariable = x)
button_1 = Button(root, text='Click', command=test)
button_1.grid(row=0, column=0)
label_1.grid(row=0, column=1)

root.mainloop()

*编辑:删除label_1.update()电话,因为这是不必要的

答案 2 :(得分:0)

如果你想把它写成一个类,它有很多优点......

import Tkinter as tk

class Application(tk.Frame):
    def __init__(self, master=None):
        self.x = tk.IntVar()

        tk.Frame.__init__(self, master)
        self.pack()
        self.createWidgets()

    def createWidgets(self):
        tk.Label(self, textvariable=self.x).pack()
        tk.Button(self, text='Click', command=self.increment).pack()

    def increment(self):
        self.x.set(self.x.get() + 1)

root = tk.Tk()
app = Application(master=root)
app.mainloop()
相关问题