所以我有Entries
有一些值從CFG文件分配給他們。我想在Entry
更新時直接修改CFG文件,沒有submit
按鈕;如何在沒有Tkinter中的「提交」按鈕的情況下更新Entry?
使用<Key>
綁定會起作用,但只會取前一個值,而不是當前值,因爲按下的最後一個鍵不會作爲值考慮,而是作爲key-press
。
例如:
class EntryBox:
def __init__(self, value, option, section, grid_row, master_e):
self.section = section
self.option = option
self.box = Entry(master_e)
self.box.grid(column=0, row=grid_row)
self.serial_no = grid_row
self.box.insert(0, value)
self.box.bind("<Key>", lambda event: update_cfg(event, self, self.get_value()))
def get_value(self):
return self.box.get()
def update_cfg(evt, entry_box,new_value):
global config_file
config_file.set(entry_box.section, entry_box.option, new_value)
print "Config file modified. "+entry_box.section+" "+entry_box.option+" "+new_value
如果entry
值05R
當我點擊entry
,按6,將打印;按7後,它會打印Config file modified. CURRENT_MEASUREMENT_EXAMPLE_HP shunt_resistance 0R56
等等,總是在一個按鍵後面。在值更改後實時更新的唯一方法是按TAB
或arrow
按鈕。
鍵釋放是最適合我的項目作爲重點出當你點擊其他窗口不保存。 –
將檢查並更新我的答案。 – R4PH43L