【问题标题】:Give the ability to user to copy text in tkinter gui让用户能够在 tkinter gui 中复制文本
【发布时间】:2021-04-01 01:20:26
【问题描述】:

在此代码中,当用户输入链接时,会显示链接的简短版本,但它不允许用户从 GUI 复制链接。我该如何解决这个问题?

import pyshorteners as pr
from tkinter import *

root = Tk()
e = Entry(root, width=50)
e.pack()


def click():
    link = e.get()
    shortener = pr.Shortener()
    Short_Link = shortener.tinyurl.short(link)
    Label1 = Label(root, text=Short_Link)
    Label1.pack()


Button1 = Button(root, text="Enter link:", command=click)
Button1.pack()

root.mainloop()

【问题讨论】:

  • 你可以使用一些按钮来复制文本,或者自动复制它,或者你可以bindCtrl+C到窗口。或者您可以将其显示在Entry,然后您可以选择文本并使用Ctrl+C

标签: python python-3.x url tkinter


【解决方案1】:

您不能使用 CTRL+C 直接从 Tkinter 标签小部件复制文本。

这是一个简单的 Tkinter 应用,用于将标签的文本复制到剪贴板:

from tkinter import *
from tkinter.messagebox import showinfo


class CopyLabel(Tk):
    def __init__(self, text: str):
        super(CopyLabel, self).__init__()

        self.title('Copy this Label')

        self.label_text = text
        self.label = Label(self, text=text)
        self.label.pack(pady=10, padx=40)

        self.copy_button = Button(self, text='COPY TO CLIPBOARD', command=self.copy)
        self.copy_button.pack(pady=5, padx=40)

    def copy(self):
        self.clipboard_clear()
        self.clipboard_append(self.label_text)

        self.update()

        showinfo(parent=self, message='Copied to clipboad!')


if __name__ == "__main__":
    app = CopyLabel('Copy me!')
    app.mainloop()

在您的代码中自动复制 Short_Link 您可以这样做:

import pyshorteners as pr
from tkinter import *

root = Tk()
e = Entry(root, width=50)
e.pack()


def click(master: Tk):
    link = e.get()
    shortener = pr.Shortener()
    Short_Link = shortener.tinyurl.short(link)
    master.clipboard_clear()
    master.clipboard_append(Short_Link)
    master.update()
    Label1 = Label(root, text=Short_Link)
    Label1.pack()

Button1 = Button(root, text="Enter link:", command=lambda: click(root))
Button1.pack()

root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多