tkinter Treeview组件排序
import tkinterfrom tkinter import ttk
# 1.创建root主窗口
root = tkinter.Tk()
root.title('人生苦短-我用python')# 窗口标题
root.geometry("450x150")# 窗口的宽度和高度
# 设置纵向滚动条
scorllbary = tkinter.Scrollbar(root)
scorllbary.pack(side=tkinter.RIGHT, fill=tkinter.Y)
# 0.数字+文本排序
def treeview_sort(tv, col, reverse):
l = [(tv.set(k, col), k) for k in tv.get_children('')]
# print(l)
# print(l)
# 1.处理数据里面的单位
if '元' in l:
# 如果第一行的数据里存在 '元' 的文本
l.sort(key=lambda t: int(t.replace('元', '')), reverse=reverse)# 把单位去除后转数字再排序
else:
try:
# 优先尝试数字排序
l.sort(key=lambda t: int(t), reverse=reverse)
except:
# 出错则普遍排序
l.sort(reverse=reverse)
# 这种排序根据首位字符来排序,不适合数字,会出现:1,11,2 这种不符合从大到小或从小到大的排序
print(l)
# 移动数据
for index, (val, k) in enumerate(l):
# print(k)
tv.move(k, '', index)
tv.heading(col, command=lambda: treeview_sort(tv, col, not reverse))
# 2.创建Treeview表格组件
tree = ttk.Treeview(root, show='headings',yscrollcommand=scorllbary.set)
# 创建表格对象,show='headings' 为隐藏首列,height 为表格高度(行)
columns = {
'ID': 50,
'作者': 80,
'性别': 80,
'年龄': 80,
'工资': 80,
'朝代': 80
}# 列头标题和对应的宽度,随便增删改查
# 批量设置列头标题
tree['columns'] = list(columns)
# 批量设置列属性
for column in columns:
# 设置列标题
tree.heading(column, text=column)
tree.column(column, width=columns, anchor='center')
# 设置列酷安,anchor 为锚点,'center' 表示中央居中
# 也可以用方位词东南西北的英文缩写表示,即 N(North, 北): 上中对齐、SW(South West, 西南):左下对齐
# tree.column(column, width=columns, anchor=tkinter.SW)
# anchor: n, ne, e, se, s, sw, w, nw, or center
# 3.设置点击执行排序操作
tree.heading(column, command=lambda _col=column: treeview_sort(tree, _col, False))
# 3.要导入表格的行数据
Data = [
,
,
,
,
,
,
,
]
# 遍历导入数据
for person in Data:
tree.insert('', 'end', text='', values=person)
scorllbary.config(command=tree.yview)
# 4.显示 Treeview 部件
tree.pack(side='top', fill='both', expand=True)
# 使窗口可视化
root.mainloop() 谢谢分享 爱你宝贝 lth123lth123 发表于 2024-7-4 02:20
谢谢分享 爱你宝贝
铁子好好爱你男朋友,我不配{:1_918:} Eks6666 发表于 2024-7-4 09:56
铁子好好爱你男朋友,我不配
不不不你配你很配可以的哈哈哈哈哈 注释很清楚,学习了,多多分享~ 收藏学习 学习一下,目前有个困难,我运行一个搜索文件的代码,想着搜索结果可以在界面实时更新,结果界面卡死。试了多线程也不行 zhangmi008 发表于 2024-7-7 10:16
学习一下,目前有个困难,我运行一个搜索文件的代码,想着搜索结果可以在界面实时更新,结果界面卡死。试了 ...
代码发出来给你指导下
zhangmi008 发表于 2024-7-7 10:16
学习一下,目前有个困难,我运行一个搜索文件的代码,想着搜索结果可以在界面实时更新,结果界面卡死。试了 ...
你不会是join 了把 xmwzx123 发表于 2024-7-10 15:23
你不会是join 了把
是的,可能问题出在这儿,我再试试,谢谢
页:
[1]
2