網站首頁 編程語言 正文
前言:
Tkinter模塊的Treeview組件類似于Dev中的treelist控件,但前者還可以當做樹控件和表格控件使用,雖然功能可能沒有dev和winform控件那么強大,但是在Tkinter中算是比較復雜、用處較多的了。
Treeview組件位于ttk模塊,該模塊自Tk8.5開始引入,如果 Python 未基于 Tk 8.5 編譯,只要安裝了 Tile 仍可訪問本模塊。Treeview支持按層次結構展示一組數據項,用excel做了個簡單的示意圖(如下所示),Treeview 組件左側可以理解為一個樹控件,右側可以理解為一個表格,一個數據條目占據一行,橫跨樹控件和表格控件。Treeview 組件用show屬性設置顯示方式,值為tree則僅顯示樹控件,值為headings默認僅顯示表格,值為tree headings則顯示全部,默認為顯示全部。Treeview 組件使用#0引用樹控件所在列,而其它列則可以用#1~#No的數字引用,也可以用列名引用。而向Treeview 組件中插入一行值時,用Text屬性賦予樹控件所在列的值,用values數控賦予其它列的值。
本文中使用的Treeview 組件的主要函數如下所示:
序號 | 函數名 | 函數說明 |
---|---|---|
1 | Treeview () | Treeview 組件的創建函數,可以同時指定父控件、columns、displaycolumns、height、padding、selectmode、show等屬性,詳細介紹請見參考 |
2 | heading | 查詢或修改某列的標題,可以設置列標題、列圖片等 |
3 | column | 查詢或修改列 column 的屬性 |
4 | insert | 函數形式為insert(parent, index, iid=None, **kw),用于插入一條新的數據條目。如果parent是另一歌數據條目的標識,則新條目為另一數據條目的下級。index 是整數或“end”,指明在父項的子項列表中的插入位置 |
序號函數名函數說明1Treeview ()Treeview 組件的創建函數,可以同時指定父控件、columns、displaycolumns、height、
ini文件算是個兩層結構,節屬于第一個層,而鍵值對屬于第二層,本文基于Treeview 組件顯示ini文件內容,
全部代碼及程序運行效果如下所示:
# coding=gbk
import tkinter as tk
from tkinter import ttk
import configparser
from tkinter.filedialog import askopenfilename
def BrowseDri():
txtFilePath.set(askopenfilename())
tree = ttk.Treeview(window, height = 15, selectmode = "extended",columns=('key', 'value'), show="tree headings", displaycolumns="#all")
tree.grid(row=1,column=1)
tree.heading("#0", text="節", anchor=tk.W)
tree.heading('key', text="鍵", anchor=tk.W)
tree.heading('value', text="值", anchor=tk.W)
tree.column('#0', width=100)
tree.column('key', width=200)
tree.column('value', width=100)
stu_root = tree.insert("", tk.END, text="ini文件",open=True)
cfg = configparser.ConfigParser()
cfg.read(txtFilePath.get())
print('readed ini file')
sections = cfg.sections()
for sec in sections:
print(sec)
node = tree.insert(stu_root, tk.END, text=sec,open=True)
for item in cfg.items(sec):
print(item)
tree.insert(node,tk.END,text='',values=(item[0],item[1]))
window=tk.Tk()
window.title('瀏覽ini文件夾')
window.geometry('600x400')
tk.Button(window,text='選擇文件',command=BrowseDri).grid(row=0,column=0)
txtFilePath=tk.StringVar()
tk.Entry(window,textvariable=txtFilePath).grid(row=0,column=1)
tk.Label(window,text='文件內容').grid(row=1,column=0)
window.mainloop()
原文鏈接:https://blog.csdn.net/gc_2299/article/details/127012899
相關推薦
- 2022-05-12 Android 記錄build打包的時間并顯示到手機上面
- 2022-12-25 深入了解Go語言中goioc框架的使用_Golang
- 2022-04-17 合并兩個遞增有序的單鏈表,使合并后仍遞增有序
- 2022-08-15 centos7 redis5安裝
- 2022-05-19 gorm整合進go-zero的實現方法_Golang
- 2022-12-23 Kubernetes?權限管理認證鑒權詳解_云其它
- 2022-05-14 C語言實現動態開辟存儲楊輝三角_C 語言
- 2022-03-14 關于log4j日志擴展---自定義PatternLayout(log4j自定義日志級別)
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支