Python-Tkinter-Label未更新
知道为什么leftresult_标签不更新吗?功能似乎正常,但标签不更新。我到处找了,找不到答案。设置“left”值,但标签不变Python-Tkinter-Label未更新,python,tkinter,label,Python,Tkinter,Label,知道为什么leftresult_标签不更新吗?功能似乎正常,但标签不更新。我到处找了,找不到答案。设置“left”值,但标签不变 from tkinter import * root = Tk(className="Page Calculator") read = IntVar() total = IntVar() left = IntVar() read.set(1) total.set(1) left.set(1) read_label = Label(root,text="
from tkinter import *
root = Tk(className="Page Calculator")
read = IntVar()
total = IntVar()
left = IntVar()
read.set(1)
total.set(1)
left.set(1)
read_label = Label(root,text="Pages Read:")
read_label.grid(column=1, row=1)
total_label = Label(root,text="Total Pages:")
total_label.grid(column=1, row=2)
read_entry = Entry(root,textvariable=read)
read_entry.grid(column=2, row=1)
total_entry = Entry(root,textvariable=total)
total_entry.grid(column=2, row=2)
def func1():
left.set(total.get() - read.get())
print(left.get())
calculate_button = Button(root,text="Calculate",command= func1)
calculate_button.grid(column=2, row=3)
percenet_label = Label(root,text="Percent Finished:")
percenet_label.grid(column=1, row=4)
left_label = Label(root,text="Pages Left:")
left_label.grid(column=1, row=5)
percenetresult_label = Label(root,text=left.get())
percenetresult_label.grid(column=2, row=4)
leftresult_label = Label(root,text="")
leftresult_label.grid(column=2, row=5)
root.mainloop()
要使函数完成此任务,您最好使用标签:
leftresult_label = Label(root, textvariable=left)
一旦它是tkinter类变量,tkinter就会注意更改值的时间。单击按钮后
def func1():
left.set(total.get() - read.get())
percent.set(int(read.get()*100/total.get()))
left和percent值是tkinter.IntVar()类的实例,它们对小部件(本例中的标签)具有immidate效果,这些值设置为textvariable,就像在条目小部件中一样
以下是完整代码:
from tkinter import *
root = Tk(className="Page Calculator")
read = IntVar()
total = IntVar()
left = IntVar()
percent = IntVar()
read.set(1)
total.set(1)
left.set(1)
percent.set(1)
def func1():
left.set(total.get() - read.get())
percent.set(int(read.get()*100/total.get()))
read_label = Label(root,text="Pages Read:")
read_label.grid(column=1, row=1)
read_entry = Entry(root,textvariable=read)
read_entry.grid(column=2, row=1)
total_label = Label(root,text="Total Pages:")
total_label.grid(column=1, row=2)
total_entry = Entry(root,textvariable=total)
total_entry.grid(column=2, row=2)
calculate_button = Button(root,text="Calculate",command= func1)
calculate_button.grid(column=2, row=3)
percenet_label = Label(root,text="Percent Finished:")
percenet_label.grid(column=1, row=4)
left_label = Label(root,text="Pages Left:")
left_label.grid(column=1, row=5)
percenetresult_label = Label(root,textvariable=percent)
percenetresult_label.grid(column=2, row=4)
leftresult_label = Label(root,textvariable=left)
leftresult_label.grid(column=2, row=5)
root.mainloop()
代码包括进度条。更新_idletasks(),用于保持标签和进度栏运行
from tkinter import *
from tkinter import ttk
root = Tk()
root.title('Counter Test')
root.iconbitmap('IT.ico')
root.geometry("800x400")
def missing():
while i < 100:
progress1['value'] = i
label1.config(text=progress1['value'])
root.update_idletasks()
i += 1
progress1 = ttk.Progressbar(root, orient=HORIZONTAL, length=250, mode='determinate')
progress1.pack(pady=15)
label1 = Label(root, text="")
label1.pack(pady=15)
button_1 = Button(root, text="Missing", command=missing)
button_1.pack(pady=15)
button_q = Button(root, text="Quit", command=root.destroy)
button_q.pack(pady=15)
root.mainloop()
从tkinter导入*
从tkinter导入ttk
root=Tk()
root.title('计数器测试')
root.iconbitmap('IT.ico'))
根几何(“800x400”)
def缺少():
当我<100时:
progress1['value']=i
label1.config(text=progress1['value'])
root.update_idletasks()
i+=1
progress1=ttk.Progressbar(根,方向=水平,长度=250,模式=确定)
进度1.包装(pady=15)
label1=标签(根,文本=)
标签1.包装(pady=15)
按钮\u 1=按钮(根,text=“缺失”,命令=缺失)
按钮组(pady=15)
按钮(root,text=“Quit”,command=root.destroy)
按钮组(pady=15)
root.mainloop()
所以要立即更新控件,比如更新标签和树视图元素,这段代码对我来说很有用
window=tk.tk()
window.update_idletasks()