簡體   English   中英

Python - tkinter Treeview 不更新整數變量

[英]Python - tkinter Treeview not updating integer variable

第一組代碼有效。 它顯示更新變量。 但是,在第二個代碼中,當我將變量放在 Treeview 小部件中時,該變量只保持在 0 上並且不會更新。 為什么這適用於標簽而不適用於樹狀視圖? 解決此問題的最簡單方法是什么?

首先(作品):

from tkinter import *
from tkinter import ttk
import threading
import time

def fun():
    for i in range(10):
        var.set(var.get() + 1)
        time.sleep(.5)

t = threading.Thread(target=fun)

root = Tk()

var = IntVar()
var.set(0)

mainframe = ttk.Frame(root)
mainframe.grid(column = 0, row = 0)
label = ttk.Label(mainframe, textvariable=var)
label.grid(column = 0, row = 0)

t.start()
root.mainloop()

第二個(不起作用):

from tkinter import *
from tkinter import ttk
import threading
import time

def fun():
    for i in range(10):
        var.set(var.get() + 1)
        time.sleep(.5)

t = threading.Thread(target=fun)

root = Tk()

var = IntVar()
var.set(0)

mainframe = ttk.Frame(root)
mainframe.grid(column = 0, row = 0)

tree = ttk.Treeview(mainframe, columns = ('number'), height = 1)

tree.insert('', 'end', text = 'Number', values = var.get())
tree.grid(column=0, row=0)

t.start()
root.mainloop()

修改fun為:

def fun():
    for i in range(10):
        var.set(var.get() + 1)
        x = tree.get_children()
        tree.item(x, text = 'Number', values = var.get())
        time.sleep(.5)

get_children方法返回一個元組項 ID 列表,樹的每個子項一個。 使用tree.item然后使用所需的 id更新孩子

在與變量var一起的第二個程序中,您還必須更新樹的子節點

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM