Python Tkinter Treeview 组件解析与 INI 文件可视化实现

Aria
Aria
发布时间:2026-10-16| 7人浏览过
原创

本文深入解析 Python Tkinter 中 ttk 模块的 Treeview 组件,介绍其树形与表格混合显示特性及核心 API。通过 configparser 模块读取 INI 文件,利用 Treeview 的 insert 和 heading 方法,实现了对配置文件节、键、值的层级化可视化展示,为 Python GUI 开发提供实用参考。

Treeview 组件基础与特性

前言:

Tkinter 模块中的 Treeview 组件功能类似于 Delphi 中的 treelist 控件,但它兼具树形控件和表格控件的特性。尽管其功能丰富度可能不及 Delphi 或 WinForms 中的对应控件,但在 Tkinter 生态中,它仍属于功能较为复杂且应用广泛的核心组件之一。

Treeview 组件归属于 ttk 模块,该模块自 Tk 8.5 版本起引入。若 Python 未基于 Tk 8.5 编译,只要系统中安装了 Tile 库,依然可以访问此模块。Treeview 支持以层次结构展示数据项,下图为 Excel 制作的简易示意图,左侧可视为树控件区域,右侧为表格区域,每个数据条目占据一行,横跨这两个区域。通过 show 属性可控制显示模式:值为 'tree' 时仅显示树结构,值为 'headings' 时默认仅显示表头(表格),值为 'tree headings' 时则同时显示两者,默认行为为显示全部。在引用列时,使用 '#0' 代表树控件所在列,其他列可通过 '#1' 至 '#N' 的数字索引引用,也可直接使用列名。向 Treeview 插入数据行时,通过 text 属性设置树控件列的值,通过 values 参数设置其他列的值。

核心函数说明

本文主要涉及的 Treeview 组件关键函数如下:

序号函数名函数说明
1Treeview ()Treeview 组件的创建函数,可以同时指定父控件、columns、displaycolumns、height、padding、selectmode、show等属性,详细介绍请见参考
2heading查询或修改某列的标题,可以设置列标题、列图片等
3column查询或修改列 column 的属性
4insert函数形式为insert(parent, index, iid=None, **kw),用于插入一条新的数据条目。如果parent是另一歌数据条目的标识,则新条目为另一数据条目的下级。index 是整数或“end”,指明在父项的子项列表中的插入位置

序号函数名函数说明1Treeview ()Treeview 组件的创建函数,可同时指定父控件、columns、displaycolumns、height、padding、selectmode、show 等属性,详细用法请参阅官方参考文档。

INI 文件可视化实现

INI 文件通常呈现两层结构:第一层为“节”(Section),第二层为“键值对”(Key-Value Pair)。本文旨在利用 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()

到此这篇关于使用 Python 中 Tkinter 模块的 Treeview 组件显示 INI 文件操作的文章就介绍到这了,更多相关 Python 显示 INI 文件内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。