簡體   English   中英

tkinter:通過按鈕復制到剪貼板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM