Вопрос

У меня есть Tix.ComboBox с редактируемым текстовым полем.Как заставить переменную, содержащую значение текста, обновиться?

Позвольте мне дать более конкретное объяснение.У меня есть поле со списком и кнопка.Когда я нажимаю кнопку, появляется окно сообщения со значением поля со списком.Допустим, текстовое поле поля со списком в настоящее время имеет значение «thing1».Если я введу в поле «новый», а затем нажму кнопку мышью, появится сообщение «thing1».Если я наберу «новый» в поле, а затем перетащу фокус от поля со списком, а затем нажму кнопку, во всплывающем сообщении будет написано «новый».

Как мне заставить поле со списком обновить его значение до нового, не требуя, чтобы я закрывал поле со списком?

Я включил пример кода.

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']

Другие советы

ПРИМЕЧАНИЕ:копия ответа Мо, которую можно выбрать в качестве выбранного ответа

ууу!решил это самостоятельно.

Использовать

self.combo['selection']

вместо

self.combo['value']
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top