[英]tkinter: Copy to clipboard via button
代碼的想法是創建 N 個按鈕,這些按鈕在按下時將文本復制到剪貼板,覆蓋並保存上次按下按鈕的文本。
from tkinter import *
import tkinter
r = Tk()
age = '''
O.o
giga
'''
gage = 'vrum'
r.title("getherefast")
def gtc(dtxt):
r.withdraw()
r.clipboard_clear()
r.clipboard_append(dtxt)
r.update()
tkinter.Button(text='age', command=gtc(age)).grid(column=1, row=0)
tkinter.Button(text='gage', command=gtc(gage)).grid(column=2, row=0)
r.mainloop()
使用此代碼,我希望獲得 2 個按鈕“年齡”和“量具”,當我按下它們分別獲取保存在 var 中的值時。
問題是 tkinter UI 沒有加載,空閑 window 只是打開。
結果是我將“vrum”復制到剪貼板(如果年齡按鈕是唯一的 1,我會得到正確的值,但仍然沒有來自 tkinter 的 GUI)。
作為附加信息,我正在 IDLE 中編寫和測試代碼,Python 3.10。
問題是 tkinter UI 無法加載
是的,確實如此,但是您告訴它要withdraw()
,所以您看不到它。
為此,您需要部分或 lambda function,您不能在命令參數中使用普通的 function 調用。 嘗試這個:
import tkinter
r = tkinter.Tk()
age = '''
O.o
giga
'''
gage = 'vrum'
r.title("getherefast")
def gtc(dtxt):
r.clipboard_clear()
r.clipboard_append(dtxt)
tkinter.Button(text='age', command=lambda: gtc(age)).grid(column=1, row=0)
tkinter.Button(text='gage', command=lambda: gtc(gage)).grid(column=2, row=0)
r.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.