[問題] tkinter button 及stringVar

看板Python作者時間1年前 (2022/07/31 17:27), 編輯推噓3(305)
留言8則, 2人參與, 1年前最新討論串1/1
小的想使用tkinter 做一個簡單的USB command GUI 在使用ttk.Button 以及stringVar()遇到兩個問題 問題一: 我用for 迴圈建立15個ttk.Entry 其中用List存放tk.StringVar(),代碼如下: ------------ address_list = ['list of address'] for number in range(1, 16): address_list.append(tk.StringVar()) ttk.Entry(bottom_frame, textvariable=address_list[number]).grid() ------------ 我接下來想透過.set() 或.get()方法去操縱其中一個元素該怎麼做呢? 已試過 var5 = address_list[5] var5.set('new value') 或是直接 address_list[5].set('new value') 都無法,是否不應該用List存放? 問題二: 我用for 迴圈建立15個ttk.Button 然後每個button command都呼叫同一個函式處理, 我要如何得知是哪個按鈕呼叫這個函式? ------------ for number in range(1, 16): ttk.Button(bottom_frame, text='Read', command=read_one).grid() 代碼全文如下: https://pastebin.com/fWyyNVw7 謝謝大神不吝賜教 感恩感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 150.117.223.194 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1659259651.A.1E9.html

08/01 10:45, 1年前 , 1F
1.放list應該不影響StringVar運作
08/01 10:45, 1F

08/01 10:48, 1年前 , 2F
2.用function wrapper,就可以達成
08/01 10:48, 2F

08/01 12:39, 1年前 , 3F
謝謝1.再試一次又OK了,應該是鬼遮眼@@ 2.可否明示一下?
08/01 12:39, 3F

08/01 12:40, 1年前 , 4F
嘗試用lambda包parameter(number)進去,但number evaluate
08/01 12:40, 4F

08/01 12:41, 1年前 , 5F
值都是15,行不通
08/01 12:41, 5F

08/01 13:20, 1年前 , 6F
lambda包要寫成, lambda btn_num= i: func(btn_num)
08/01 13:20, 6F

08/01 13:27, 1年前 , 7F

08/01 15:43, 1年前 , 8F
謝謝 請受小弟一拜 m(_ _)m
08/01 15:43, 8F
文章代碼(AID): #1Yvai37f (Python)