使用Python中Tkinter模塊的Treeview?組件顯示ini文件操作
前言:
Tkinter模塊的Treeview組件類似于Dev中的treelist控件,但前者還可以當(dāng)做樹控件和表格控件使用,雖然功能可能沒有dev和winform控件那么強大,但是在Tkinter中算是比較復(fù)雜、用處較多的了。
Treeview組件位于ttk模塊,該模塊自Tk8.5開始引入,如果 Python 未基于 Tk 8.5 編譯,只要安裝了 Tile 仍可訪問本模塊。Treeview支持按層次結(jié)構(gòu)展示一組數(shù)據(jù)項,用excel做了個簡單的示意圖(如下所示),Treeview 組件左側(cè)可以理解為一個樹控件,右側(cè)可以理解為一個表格,一個數(shù)據(jù)條目占據(jù)一行,橫跨樹控件和表格控件。Treeview 組件用show屬性設(shè)置顯示方式,值為tree則僅顯示樹控件,值為headings默認(rèn)僅顯示表格,值為tree headings則顯示全部,默認(rèn)為顯示全部。Treeview 組件使用#0引用樹控件所在列,而其它列則可以用#1~#No的數(shù)字引用,也可以用列名引用。而向Treeview 組件中插入一行值時,用Text屬性賦予樹控件所在列的值,用values數(shù)控賦予其它列的值。
本文中使用的Treeview 組件的主要函數(shù)如下所示:
序號 | 函數(shù)名 | 函數(shù)說明 |
---|---|---|
1 | Treeview () | Treeview 組件的創(chuàng)建函數(shù),可以同時指定父控件、columns、displaycolumns、height、padding、selectmode、show等屬性,詳細(xì)介紹請見參考 |
2 | heading | 查詢或修改某列的標(biāo)題,可以設(shè)置列標(biāo)題、列圖片等 |
3 | column | 查詢或修改列 column 的屬性 |
4 | insert | 函數(shù)形式為insert(parent, index, iid=None, **kw),用于插入一條新的數(shù)據(jù)條目。如果parent是另一歌數(shù)據(jù)條目的標(biāo)識,則新條目為另一數(shù)據(jù)條目的下級。index 是整數(shù)或“end”,指明在父項的子項列表中的插入位置 |
序號函數(shù)名函數(shù)說明1Treeview ()Treeview 組件的創(chuàng)建函數(shù),可以同時指定父控件、columns、displaycolumns、height、
ini文件算是個兩層結(jié)構(gòu),節(jié)屬于第一個層,而鍵值對屬于第二層,本文基于Treeview 組件顯示ini文件內(nèi)容,
全部代碼及程序運行效果如下所示:
# 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="節(jié)", 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='文件內(nèi)容').grid(row=1,column=0) window.mainloop()
到此這篇關(guān)于使用Python中Tkinter模塊的Treeview 組件顯示ini文件操作的文章就介紹到這了,更多相關(guān)Python顯示ini文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中Pyqt5使用Qlabel標(biāo)簽進(jìn)行視頻播放
這篇文章主要介紹了python中Pyqt5使用Qlabel實現(xiàn)標(biāo)簽進(jìn)行視頻播放,QLabel是界面中的標(biāo)簽類,繼承自QFrame類,提供文本和圖像的顯示,是一種展示控件,下文相關(guān)內(nèi)容介紹需要的小伙伴可以參考一下2022-04-04python Event事件、進(jìn)程池與線程池、協(xié)程解析
這篇文章主要介紹了python Event事件、進(jìn)程池與線程池、協(xié)程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10Python日期格式和字符串格式相互轉(zhuǎn)換的方法
這篇文章主要介紹了Python日期格式和字符串格式相互轉(zhuǎn)換的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02Python基于os.environ從windows獲取環(huán)境變量
這篇文章主要介紹了Python基于os.environ從windows獲取環(huán)境變量,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06Python Dataframe 指定多列去重、求差集的方法
今天小編就為大家分享一篇Python Dataframe 指定多列去重、求差集的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07