Pergunta

Eu tenho um Tix.ComboBox com um campo de texto editável. Como faço para forçar a variável mantendo o valor para que o texto update?

Deixe-me dar uma explicação mais concreta. Eu tenho uma caixa de combinação e um botão. Quando clico no botão, ele aparece uma caixa de mensagem com o valor da caixa de combinação. Vamos dizer que o campo de texto caixa de combinação atualmente tem o valor "thing1". Se eu digitar "novo" na caixa e, em seguida, clique no botão com o mouse, ele vai aparece a mensagem "thing1". Se eu digitar "novo" na caixa e, em seguida, o foco guia longe da caixa de combinação e, em seguida, clique no botão a mensagem pop-up diz "novo".

Ho faço para forçar a caixa de combinação para atualizar valor que seja para novo sem exigir que guia I longe da caixa de combinação?

Eu incluí código de exemplo.

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()
Foi útil?

Solução

woo! resolveu por conta própria.

Use

self.combo['selection']

em vez de

self.combo['value']

Outras dicas

NOTA: cópia da resposta de Moe que podem ser selecionado como resposta escolhida

woo! resolveu por conta própria.

Use

self.combo['selection']

em vez de

self.combo['value']
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top