tkinter吧 关注:125贴子:362
  • 19回复贴,共1

问一个问题,关于 ttk.Treeview

只看楼主收藏回复

( 楼主是 python 小白 )
用 ttk.Treeview 显示 4万 多行。
文字的话,没什么问题。
每一行,加一个图标的话,(就只需要几种不同的图标),打开来也没什么问题;
但是 窗口 关闭的 时候,非常慢。
像下面这样,同一种 图标,重复用了 45000 次:


图片很小 16 x 16 大小的,
打开来都没有问题,就是关闭时,太慢了。
如果 数量 再增大到 5万,我电脑上,就更慢了。
请教一下各位大佬:
是不是上面用的方法有问题 ?
有没有办法,让程序关闭时,快一点 ?
------------------
------------------
------------------
import tkinter as tk
from tkinter import ttk
class maketree:
def __init__(self, parent):
self.tree = ttk.Treeview(parent,)
self.scrollbar_1 = ttk.Scrollbar( parent, orient=tk.VERTICAL, command=self.tree.yview)
self.scrollbar_2 = ttk.Scrollbar( parent, orient=tk.HORIZONTAL, command=self.tree.xview)
self.tree.configure(yscrollcommand=self.scrollbar_1.set)
self.tree.configure(xscrollcommand=self.scrollbar_2.set)
self.tree.grid(row=0,column=0,sticky=(tk.N,tk.S,tk.E,tk.W))
self.scrollbar_1.grid(row=0,column=1,columnspan=2,sticky=(tk.N,tk.S))
self.scrollbar_2.grid(row=1,column=0,sticky=(tk.W,tk.E))
if __name__ == "__main__" :
root=tk.Tk()
root.rowconfigure(0, weight=1)
root.columnconfigure(0, weight=1)
a=maketree(root)
image_grey = tk.PhotoImage( file= r'.\grey.png')
a.tree['columns'] = ("test 1","test 2")
for x in range(45000):
x+=1
a.tree.insert('','end',x ,text=str(x),image=image_grey,values =("just for test",) )
root.mainloop()


IP属地:江苏1楼2021-05-12 17:12回复
    root=tk.Tk()
    root.protocol("WM_DELETE_WINDOW", lambda: root.quit()) ## 添加这一句
    应该好一点


    IP属地:浙江2楼2021-05-22 17:08
    收起回复
      楼上的方法,是强制退出,换个函数用 sys.exit(),也是可以的。
      正常的方法:如果用的图标数量虽然大,但种类不多,可以设置几个不同的 tag ,用
      treeview.tag_configure(.........)
      这个函数设置图片。


      IP属地:江苏3楼2021-09-01 00:17
      回复
        这个是我做的,功能就是 显示 MAME 程序的 游戏列表,调用 MAME 运行游戏。
        自己用的话,感觉还行。
        分享给别人用就麻烦了:
        用 pyinstaller 转 exe :
          单文件的 .exe ,它自己先解压到系统临时文件夹,然后再运行,感觉就是个假的单文件,不喜欢这种;
          文件夹模式的 .exe ,附带的文件数量又太多了,这个很麻烦啊。
        内置主题 clam 效果图:

        使用 第三方 主题 效果图:

        调用 另外一个程序 —— MAME,运行游戏:


        IP属地:江苏4楼2021-09-01 00:30
        收起回复
          老哥这个代码能分享一下嘛


          IP属地:北京5楼2021-11-04 17:20
          回复
            我用ttk.Treeview的时候多标签页插入数据的时候老报错不知道什么情况,想参考一下


            IP属地:北京6楼2021-11-04 17:21
            收起回复
              你好,请问ttk模块哪里下载?给个链接吗?


              IP属地:塞尔维亚7楼2022-01-06 01:19
              收起回复
                你好,我是小白。在你帖子里的连接下载了一个mame0.228 64位那个,结果没有任何游戏,都是八叉,说是要安装什么。那个mame怎么运行呢?或者有没有帖子介绍一下,小白操作的@gdicnng


                IP属地:新疆来自iPhone客户端8楼2022-03-30 19:44
                收起回复