簡體   English   中英

Python | (Tkinter)僅在按下按鈕時顯示文本

[英]Python | (Tkinter) only shows text when button is pressed

所以我做了一個按鈕來復制一些東西到剪貼板,但按鈕本身總是顯示,但只有當它按下時,它上面的文本,如何修復它? (這里有按鈕代碼的部分:)

canvas1 = tk.Canvas(root, width=300, height=300)
canvas1.pack()


def copy_button():
    clip = tk.Tk()
    clip.withdraw()
    clip.clipboard_clear()
    clip.clipboard_append(pw)
    clip.destroy()


button1 = tk.Button(text="Copy to Clipboard", command=copy_button, bg="grey", fg="white", font=("Helvetica", 12, "bold"))
canvas1.create_window(150, 150, window=button1)

Linux 操作系統中沒有出現您消失的文本問題,但我懷疑您的問題與您的button1 = tk.Button(....)語句有關。

tk.Button小部件的第一個參數必須是其父級(請參閱此鏈接了解此要求),而不是關鍵字/選項。

嘗試button1 = tk.Button(canvas1, text="Copy to Clipboard", ....) 這樣做,您將tk.Button定義為tk.Canvas小部件的子級。

如果您在 canvas 中放置了多個按鈕,您可能需要考慮:

  1. 將 tk.Frame 定義為tk.Frame的子tk.Canvas (例如frame1=tk.Frame(canvas1) ),
  2. window=frame1替換window=button1
  3. 讓 button1 成為 frame1 的子對象,例如button1 = tk.Button(frame1, text="Copy to Clipboard", ....)

如果此答案解決了您的問題,請告訴我。

其他建議:

您可以刪除clip = tk.Tk()clip.withdraw()clip.destroy()並將 clip.clipboard_clear( clip.clipboard_clear()和 clip.clipboard_append clip.clipboard_append(pw)中的clip項替換為root 在這里,我假設您之前在代碼開頭定義了root = tk.Tk()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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