看板 Python 關於我們 聯絡資訊
小的想使用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
lycantrope: 1.放list應該不影響StringVar運作 08/01 10:45
lycantrope: 2.用function wrapper,就可以達成 08/01 10:48
check: 謝謝1.再試一次又OK了,應該是鬼遮眼@@ 2.可否明示一下? 08/01 12:39
check: 嘗試用lambda包parameter(number)進去,但number evaluate 08/01 12:40
check: 值都是15,行不通 08/01 12:41
lycantrope: lambda包要寫成, lambda btn_num= i: func(btn_num) 08/01 13:20
lycantrope: https://pastebin.com/RAbQ24WS 08/01 13:27
check: 謝謝 請受小弟一拜 m(_ _)m 08/01 15:43