¿Cómo actualizar el texto de un Tix.ComboBox?
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()
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']