我想创建一个“程序”,当你按下一个按钮并打印出一个变量时更新一个标签,但是我所拥有的代码不起作用。有人可以帮助我吗?
提前致谢!
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()
答案 0 :(得分:4)
取代label_1.update()
(doesn't do anything close to what you think it does},reconfigure the widget与label_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()