#python #python-3.x #url #tkinter
Вопрос:
В этом коде, когда пользователь вводит ссылку, отображается краткая версия ссылки, но она не дает пользователю возможности скопировать ссылку из графического интерфейса. Как мне это исправить?
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()
Комментарии:
1. вы можете использовать какую-либо кнопку для копирования текста или скопировать его автоматически, или вы можете
bind
нажать кнопкуCtrl C
«Окно». или вы можете отобразить его,Entry
а затем выбрать текст и использоватьCtrl C
Ответ №1:
Вы не можете напрямую скопировать текст из виджета метки Tkinter с помощью CTRL C.
Это простое приложение 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()
В вашем коде для автоматического копирования короткой ссылки вы можете сделать:
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()