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()
È stato utile?

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']
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top