Ich versuche, ein Dialogfeld in Ironpython zu erstellen, das mehrere Textfelder für Benutzereingaben für eine Tabelle mit mehreren Spalten bietet. Ich habe jedoch Schwierigkeiten, die Benutzereingabewerte an eine andere Funktion zu übergeben. Mein Code sieht wie folgt aus:Wie kann ich die Eingabe für mehrere Textbox-Dialog in Python speichern?
self.newVal = []
for column in columns:
self.label = Label()
self.label.Text = col
self.label.Location = Point(10, offset)
self.cb = Textbox()
self.cb.Text = "Type in new value"
self.cb.Location = Point(150,offset)
self.cb.Height = 20
self.cb.Width = 295
self.cb.Enabled = True
self.Controls.Add(self.label)
self.Controls.Add(self.cb)
self.newVal.append(self.cb.Text)
offset = offset + 30
Das Problem ist, dass die self.newVal bestand aus diesem Code nur die ursprüngliche Nachricht von „Art in dem neuen Wert“ ist, dauert es nicht wirklich die Benutzereingabewerte im Text Box, wenn sie von einer anderen Funktion aufgerufen wird. Wenn von einer anderen Funktion auf self.cb.Text
verwiesen wird, ist der Wert tatsächlich der Wert, den der Benutzer neu eingegeben hat. Aber das funktioniert nicht für mich, weil self.cb.Text
nur die Eingabe für die letzte Spalte gibt. Während self.newVal
enthält alle Spaltenwerte, außer es wird nicht mit der Benutzereingabe wie erwähnt aktualisiert.
Eine andere verwandte Frage. Ich versuchte, mit diesem Problem umzugehen, indem ich mehrere Textboxen definierte und sie einzeln weitergab. Aber ich kann keine Möglichkeit finden, eine Variable nach self.
zu verwenden. Zum Beispiel in dem obigen Code, wenn ich self.col
statt self.cb
, wird der Code nicht wirklich col
als Variable behandelt hier alles, was ich bekomme, ist eine einziges self.col
mit col
ein String ist, genau die gleiche wie self.cb
verwenden. Ist es möglich, eine Variable nach self.
in einer Klasse zu verwenden?
Wenn Sie Text von 'self.cb.Text' in" einer anderen Funktion "erhalten können, dann holen Sie sich diesen Text in" andere Funktion "und hängen Sie an' self.newVal' an. Programm wird dies nicht automatisch anhängen, Sie müssen manuell anhängen. – furas
'self.col' ist variabel, weil Sie seine Werte immer ändern können. Es ist unklar, was Sie erwarten. Vielleicht liegt Ihr Problem daran, dass Sie '' Textbox() 'einer Variablen zuweisen, so dass Sie vorherige Werte überschreiben und keinen Zugriff auf vorherige' Textbox() 'haben - behalten Sie sie auf der Liste' self.all_cb.append (self.cb) ' und dann haben Sie Zugriff auf "self.all_cb [0] .Text", "self.all_cb [1] .Text" usw. – furas