Come aggiornare un testo di Tix.ComboBox?
Domanda
Ho un Tix.ComboBox con un campo di testo modificabile. Come forzare l'aggiornamento della variabile che contiene il valore per il testo?
Lasciami dare una spiegazione più concreta. Ho una casella combinata e un pulsante. Quando faccio clic sul pulsante, viene visualizzata una finestra di messaggio con il valore della casella combinata. Supponiamo che il campo di testo della casella combinata abbia attualmente il valore " thing1 " ;. Se digito " nuovo " nella casella e quindi fare clic sul pulsante con il mouse, si aprirà il messaggio "cosa1". Se digito " nuovo " nella casella, quindi fai clic sulla casella combinata e fai clic sul pulsante, il messaggio pop-up dice " new " ;.
Ho forzato la casella combinata ad aggiornare il suo valore a nuovo senza richiedere che mi separassi dalla casella combinata?
Ho incluso un codice di esempio.
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()
Soluzione
corteggiare! risolto da solo.
Usa
self.combo['selection']
anziché
self.combo['value']
Altri suggerimenti
NOTA: copia della risposta di Moe che può essere selezionata come risposta scelta
corteggiare! risolto da solo.
Usa
self.combo['selection']
anziché
self.combo['value']