[英]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 中放置了多個按鈕,您可能需要考慮:
tk.Frame
的子tk.Canvas
(例如frame1=tk.Frame(canvas1)
),window=frame1
替換window=button1
,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.