python tkinter用Treeview實現ListView效果


先上圖

再上代碼:

import ttk
from Tkinter import *
root = Tk()
tree = ttk.Treeview(root, columns=('col1','col2','col3'))
tree.column('col1', width=100, anchor='center') tree.column('col2', width=100, anchor='center') tree.column('col3', width=100, anchor='center') tree.heading('col1', text='col1') tree.heading('col2', text='col2') tree.heading('col3', text='col3')
def onDBClick(event): item = tree.selection()[0] print "you clicked on ", tree.item(item, "values") for i in range(10): tree.insert('',i,values=('a'+str(i),'b'+str(i),'c'+str(i))) tree.bind("<Double-1>", onDBClick) tree.pack() root.mainloop()

說點啥:

  • ttk貌似是python自帶的。
  • Treeview本質上是一棵樹。
  • 以上是弱化版,也就是我們通常見到的listview
  • 支持事件的綁定,通過tree.bind配合tree.item以及tree.selection()使用,可以針對單擊,雙擊等事件寫代碼。

 

關於滾動條:

    注意,滾動條是一個控件,而不是treeview的一個屬性!

     添加滾動條示例代碼如下(其中水平滾動條是不會起作用的,原因參考這里):

# -*- coding:utf-8-*-
from Tkinter import *
import ttk
root = Tk()
root.geometry("800x600")

tv = ttk.Treeview(root, height =10,columns=('c1','c2','c3'))
for i in range(1000):
    tv.insert('',i,values=('a'+str(i),'b'+str(i),'c'+str(i)))
tv.pack()

#----vertical scrollbar------------
vbar = ttk.Scrollbar(root,orient=VERTICAL,command=tv.yview)
tv.configure(yscrollcommand=vbar.set)
tv.grid(row=0,column=0,sticky=NSEW)
vbar.grid(row=0,column=1,sticky=NS)

#----horizontal scrollbar----------
hbar = ttk.Scrollbar(root,orient=HORIZONTAL,command=tv.xview)
tv.configure(xscrollcommand=hbar.set)
hbar.grid(row=1,column=0,sticky=EW)
root.mainloop()

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM