Pregunta

Tengo un Tix.ComboBox con un campo de texto editable.¿Cómo fuerzo la actualización de la variable que contiene el valor del texto?

Déjame darte una explicación más concreta.Tengo un cuadro combinado y un botón.Cuando hago clic en el botón, aparece un cuadro de mensaje con el valor del cuadro combinado.Digamos que el campo de texto del cuadro combinado tiene actualmente el valor "cosa1".Si escribo "nuevo" en el cuadro y luego hago clic en el botón con el mouse, aparecerá el mensaje "cosa1".Si escribo "nuevo" en el cuadro y luego tabulo el foco fuera del cuadro combinado y luego hago clic en el botón, el mensaje emergente dice "nuevo".

¿Cómo fuerzo al cuadro combinado a actualizar su valor a nuevo sin necesidad de alejarme del cuadro combinado?

He incluido código de muestra.

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

Solución

¡cortejar!Lo resolví por mi cuenta.

Usar

self.combo['selection']

en lugar de

self.combo['value']

Otros consejos

NOTA:copia de la respuesta de Moe que se puede seleccionar como respuesta elegida

¡cortejar!Lo resolví por mi cuenta.

Usar

self.combo['selection']

en lugar de

self.combo['value']
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top