【问题标题】:Select and copy a particular cell in tkinter treeview在 tkinter 树视图中选择并复制特定单元格
【发布时间】:2020-11-21 07:32:50
【问题描述】:

我的tkinter treeview 中有 4 列。最后一列包含url links,形式为text

我想enable用户点击他们想要的url cell,他们可以copy它。这可能吗?

任何帮助将不胜感激!

【问题讨论】:

    标签: python tkinter treeview


    【解决方案1】:

    假设tree 变量有一个Treeview 对象。首先,您应该将事件处理程序绑定到tree。然后,在您的事件处理函数中,您可以使用tree.focus() 来找出当前关注的树项。接下来,您需要确定当前单元格具有哪一列 - tree.identify_column 方法可以帮助解决它。最后,您可以检查它是否是所需的列。如果是这样,则将单元格值附加到剪贴板。

    这是一个代码示例:

    import tkinter as tk
    from tkinter import ttk
    
    
    def tree_click_handler(event):
        cur_item = tree.item(tree.focus())
        col = tree.identify_column(event.x)
        if col == '#3':
            root.clipboard_clear()
            root.clipboard_append(cur_item['values'][2])
    
    root = tk.Tk()
    tree = ttk.Treeview(root)
    tree.pack()
    
    tree['columns'] = ('one', 'two', 'three')
    tree.column('#0', width=170, stretch=tk.NO)
    tree.column('one', width=100, stretch=tk.NO)
    tree.column('two', width=100, stretch=tk.NO)
    tree.column('three', width=180, stretch=tk.NO)
    
    tree.heading('#0', text='Name', anchor=tk.W)
    tree.heading('one', text='Col1', anchor=tk.W)
    tree.heading('two', text='Col2', anchor=tk.W)
    tree.heading('three', text='Col3', anchor=tk.W)
    
    tree.insert(
        '', 'end', text='The First Item Name',
        values=('Col1_1', 'Col2_1', 'https://test0.test')
    )
    tree.insert(
        '', 'end', text='The Second Item Name',
        values=('Col1_2', 'Col2_2', 'https://test1.test')
    )
    tree.insert(
        '', 'end', text='The Third Item Name',
        values=('Col1_3', 'Col2_3', 'https://test2.test')
    )
    
    tree.bind('<ButtonRelease-1>', tree_click_handler)
    
    root.mainloop()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 2022-01-03
      • 1970-01-01
      相关资源
      最近更新 更多