Question

J'ai un Tix.ComboBox avec un champ de texte éditable. Comment forcer la variable contenant la valeur du texte à mettre à jour?

Laissez-moi vous donner une explication plus concrète. J'ai une liste déroulante et un bouton. Lorsque je clique sur le bouton, une boîte de message contenant la valeur de la liste déroulante apparaît. Supposons que le champ de texte de la liste déroulante ait actuellement la valeur "thing1". Si je tape "nouveau" Dans la boîte puis cliquez sur le bouton avec la souris, le message "thing1" apparaîtra. Si je tape "nouveau" Dans la boîte de dialogue, cliquez sur le bouton "" nouveau ".

Comment puis-je forcer la liste déroulante à mettre à jour sa valeur sans avoir besoin que je la sépare de la liste déroulante?

J'ai inclus un exemple de code.

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()
Était-ce utile?

La solution

woo! résolu moi-même.

Utiliser

self.combo['selection']

au lieu de

self.combo['value']

Autres conseils

NOTE: copie de la réponse de Moe pouvant être sélectionnée comme réponse choisie

woo! résolu moi-même.

Utiliser

self.combo['selection']

au lieu de

self.combo['value']
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top