編集可能なテキスト フィールドを持つ Tix.ComboBox があります。テキストの値を保持する変数を強制的に更新するにはどうすればよいですか?
もっと具体的な説明をしましょう。コンボボックスとボタンがあります。ボタンをクリックすると、コンボ ボックスの値を含むメッセージ ボックスがポップアップ表示されます。現在、コンボ ボックスのテキスト フィールドの値が「thing1」であるとします。ボックスに「new」と入力してマウスでボタンをクリックすると、「thing1」というメッセージが表示されます。ボックスに「new」と入力し、タブ フォーカスをコンボ ボックスから離してボタンをクリックすると、ポップアップ メッセージに「new」と表示されます。
コンボ ボックスからタブを離さなくても、コンボ ボックスの値を強制的に新しい値に更新するにはどうすればよいですか?
サンプルコードを含めました。
import Tix
import tkMessageBox
class App(object):
def __init__(self, window):
window.winfo_toplevel().wm_title("test")
self.window = window
self.combo = Tix.ComboBox(window)
self.combo.insert(Tix.END, 'thing1')
self.combo.insert(Tix.END, 'thing2')
self.combo.entry['state'] = "normal"
self.combo['editable'] = True
self.combo.pack()
button = Tix.Button(window)
button['text'] = "Go"
button['command'] = self.go
button.pack()
def go(self):
tkMessageBox.showinfo('info', self.combo['value'])
if __name__ == '__main__':
root = Tix.Tk()
App(root)
root.mainloop()