![](/img/trans.png)
[英]Updating a label text with the click of a button in tkinter python
[英]Python Tkinter create label with text of pressed button
這是我在這里的第一篇文章,希望我做對了,所以對於我的項目,我創建了一組按鈕,並且每當按下一個按鈕時。 我希望它的按鈕文本顯示在新創建的 label 上,盡管這看起來很簡單。 我很難讓它工作:這是代碼:
a=0
def label(t):
nonlocal a
l = tk.Label(self.parent, text=str(t))
l.grid(row=1, column=a)
a += 1
r=0
for components in array:
button = tk.Button(self.parent, text=str(array[r]), command=lambda:
label(array[r]))
button.grid(row=0, column=r, padx=5, pady=5)
r+=1
如您所見,我使用 for 子句循環遍歷數組以創建按鈕。 現在的問題是,按鈕命令分配似乎有些動態(?),這意味着,每當我按下任何按鈕時,它總是會顯示最后一個按鈕創建的 label 文本,因為這是與變量 r。 例如,如果數組包含 5 個元素 A、B、C、D、E,則將創建 5 個按鈕。 但是當我按下其中任何一個時,它總是會顯示 E。
我希望你們能理解我的問題,也許知道解決它的方法或以更好的方式實現這個機制。 請不要我還處於編程的最開始:)
謝謝和最好的問候!
嘗試這個:
button = tk.Button(self.parent, text=str(array[r]), command=lambda arg=array[r]: label(arg))
這會將陣列中的 position 與更改前的 lambda function 相關聯。 讓我知道這是否適合你:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.