作者check ()
看板Python
標題[問題] tkinter button 及stringVar
時間Sun Jul 31 17:27:08 2022
小的想使用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
→ check: 謝謝 請受小弟一拜 m(_ _)m 08/01 15:43