簡體   English   中英

Select 並復制 tkinter treeview 中的特定單元格

[英]Select and copy a particular cell in tkinter treeview

我的tkinter treeview中有 4 列。 最后一列由url linkstext形式組成。

我想讓用戶點擊他們想要的enable url cell並且他們能夠copy它。 這可能嗎?

任何幫助將不勝感激!

假設tree變量有一個Treeview object 首先,您應該將事件處理程序綁定到tree 然后,在您的事件處理程序 function 中,您可以使用tree.focus()找出現在聚焦的樹項。 接下來,您需要確定當前單元格具有哪一列 - tree.identify_column方法可以幫助解決它。 最后,您可以檢查它是否是所需的列。 如果是這樣,您將 append 單元格值復制到剪貼板。

這是一個代碼示例:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM