質問

編集可能なテキストフィールドを持つ Tix.ComboBox があります。テキストの値を保持する変数を強制的に更新するにはどうすればよいですか?

もう少し具体的に説明しましょう。コンボボックスとボタンがあります。ボタンをクリックすると、コンボ ボックスの値を含むメッセージ ボックスがポップアップ表示されます。現在、コンボ ボックスのテキスト フィールドの値が「thing1」であるとします。ボックスに「new」と入力し、マウスでボタンをクリックすると、「thing1」というメッセージがポップアップ表示されます。ボックスに「new」と入力し、タブでフォーカスをコンボ ボックスから外してボタンをクリックすると、ポップアップ メッセージに「new」と表示されます。

Tab キーでコンボ ボックスから離れることなく、コンボ ボックスの値を強制的に 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()
役に立ちましたか?

解決

うわー!自分で解決しました。

使用

self.combo['selection']

の代わりに

self.combo['value']

他のヒント

注記:選択された回答として選択できる Moe の回答のコピー

うわー!自分で解決しました。

使用

self.combo['selection']

の代わりに

self.combo['value']
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top