【问题标题】:Don't understand how to copy data from CTkLabel不明白如何从 CTkLabel 复制数据
【发布时间】:2022-12-11 09:03:20
【问题描述】:

如何从自定义 tkinter 标签复制信息?

我做了密码管理器,想从标签中选择文本并复制它,但不能。我使用了 pyperclip 但这不是我需要的。直接想选中文字复制!

import customtkinter
import tkinter
import pyperclip

from cryptography.fernet import Fernet

customtkinter.set_appearance_mode("dark")

app = customtkinter.CTk()
app.geometry("400x300")

def copy():
    pyperclip.copy(lbl1.text)
    lbl2.configure(text="Successfully")


lbl1 = customtkinter.CTkLabel(text="Website")
lbl1.pack()

lbl2 = customtkinter.CTkLabel(text="")
lbl2.pack()

btn1 = customtkinter.CTkButton(text="Copy", command=copy)
btn1.pack()


app.mainloop()

【问题讨论】:

  • 请参阅本指南了解如何提供 minimal reproducible example,并阅读有关 how to ask 的信息。请记住,如果我们不知道您已经尝试过什么,我们就无法帮助您。
  • label 并不意味着要稍微拖动鼠标并选择内容。你可以绑定一个点击事件,然后通过pyperclip复制。但是,如果你想拖动和选择某种东西,你应该使用文本小部件
  • 遗憾的是不能用“文本”来实现,因为我想用 CTk 让它看起来很酷
  • Label 和 Text 都不是合适的小部件。 Entry 小部件将是最简单的解决方案。看起来 customtkinter 有一个 Entry 小部件。

标签: python tkinter customtkinter


【解决方案1】:

首先需要通过master指定父窗口。然后你可以通过.cget属性来完成。

import customtkinter

customtkinter.set_appearance_mode("dark")

def copy():
    copied_var = lbl1.cget("text")
    lbl2.configure(text="Successfully")

app = customtkinter.CTk()
app.geometry("400x300")


lbl1 = customtkinter.CTkLabel(master=app, text="Website")
lbl1.pack()

lbl2 = customtkinter.CTkLabel(master=app, text="")
lbl2.pack()

btn1 = customtkinter.CTkButton(master=app, text="Copy", command=copy)
btn1.pack()

app.mainloop()

您必须仔细查看此页面:https://github.com/TomSchimansky/CustomTkinter/wiki

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-21
    • 2019-07-14
    • 1970-01-01
    • 2014-05-08
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    相关资源
    最近更新 更多