簡體   English   中英

在 tkinter 樹視圖中顯式標記一行

[英]Emplicitly tag a row in tkinter treeview

我試圖在選擇樹視圖列時標記單行。

BadgesView.tag_configure("BadgeOfTheWeek", background="yellow")

在標記這一行之前或之后,我希望其他行的所有標記都被程序刪除。

for row in Treeview:
    remove tag from row.

我不確定這是否可行,因為我很難確定哪一行是所選行,以及從哪一行標記。

任何幫助表示贊賞。

問題:...要刪除所有tags的其他rows


Tkinter 8.5 參考 - 45. ttk.Treeview
首先,一些定義:
item
小部件中顯示的實體之一。 對於文件瀏覽器,項目可能是目錄或文件。 每個項目都與一個文本標簽相關聯,也可能與一個圖像相關聯。
iid
樹中的每一項都有一個唯一的標識符字符串,稱為 iid。 您可以自己提供 iid 值,也可以讓 ttk 生成它們。


之前的Treeview items

 item:{'text': 'Text_1', 'values': '', 'tags': ['ALL'], 'image': '', 'open': 0} item:{'text': 'Text_2', 'values': '', 'tags': ['BadgeOfTheWeek', 'ALL'], 'image': '', 'open': 0} item:{'text': 'Text_3', 'values': '', 'tags': ['ALL'], 'image': '', 'open': 0}
  • 循環Treeview以獲取項目的iid

     for iid in self.tree.get_children():
  • 條件: 'BadgeOfTheWeek' not in當前item(iid) tags

     if not 'BadgeOfTheWeek' in self.tree.item(iid)['tags']:
  • 要從此item(iid)刪除所有tags ,請將tags=設置為空listset

     self.tree.item(iid, tags=[])

Treeview items

 item:{'text': 'Text_1', 'values': '', 'tags': '', 'image': '', 'open': 0} item:{'text': 'Text_2', 'values': '', 'tags': ['BadgeOfTheWeek', 'ALL'], 'image': '', 'open': 0} item:{'text': 'Text_3', 'values': '', 'tags': '', 'image': '', 'open': 0}

用 Python 測試:3.5 - TkVersion:8.6

暫無
暫無

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

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