python设置win剪贴版 但只能复制出一个字母是为什么??

发布于 2022-09-11 18:34:10 字数 1266 浏览 19 评论 0

v_u = ['dd','dds','qqq']
v_n = ['111','222','333']



win = tk.Tk()
win.geometry('500x400')

def onCopy():
    # 右键菜单
    item_text = tv.item(tv.selection(), 'values')
    print(item_text[2])  # 输出所选行的第一列的值
    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    win32clipboard.SetClipboardData(win32clipboard.CF_TEXT, item_text[2])
    print(win32clipboard.GetClipboardData(win32clipboard.CF_TEXT))
    win32clipboard.CloseClipboard()


tv = ttk.Treeview(win,show='headings')
tv["columns"] = ('a','b','c')
tv.grid(row=4,columnspan=4,sticky='ES')

tv.column('a', width=50, anchor='center')
tv.column('b',width=200)
tv.column('c',width=200)
tv.heading('a',text='编号')
tv.heading('b',text='说明')
tv.heading('c',text='地址')

# 右键菜单
menu = tk.Menu(win, tearoff=0)
menu.add_command(label="复制地址", command=onCopy)


def popupmenu(event):
    menu.post(event.x_root, event.y_root)


tv.bind("<Button-3>", popupmenu)


def add_list():
    for i in range(len(v_u)):
        tv.insert('', 'end', values=(i + 1, v_n[i], v_u[i]))


tk.Button(win, text='add', width='10', height='1', command=add_list).grid(row=5, column=1)


win.mainloop()

tv是treeview
item_text[2]这个值打出来是对的。
但SetClipboardData后,我在粘贴,就只有第一个字母。
这是为什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空心空情空意 2022-09-18 18:34:10

for里面每次都清空然后设置剪贴板,有可能被最后一次结果覆盖了,具体情况最好提供下完整代码或输出

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文