( 楼主是 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()
用 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()