• 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()
    

      

  • 相关阅读:
    从RUU中提取HTC官方ROM
    AndroidRom制作(一)——Rom结构介绍、精简和内置、一般刷机过程
    写在"跳槽旺季"
    从团宝危机谈行业洗牌
    Session和Cookie的关系
    Django常用模板标签
    ASP.NET论坛调查
    SourceForge支持新的版本控制系统
    ORACLE传奇
    Linked Data下一代WWW
  • 原文地址:https://www.cnblogs.com/Tommy-Yu/p/4156014.html
Copyright © 2020-2023  润新知