Ich habe ein Wörterbuch für den Wert meiner Combobox erstellt. Ich versuche, .get(keys)
zu verwenden, um den Wert zu erhalten, den ich für die Combobox einstelle. Zum Beispiel, wenn ich A auswähle, sollte es Haha What
ausdrucken, B sollte Lala Sorry
ausdrucken, beide sind die Werte in meinem Wörterbuch, also, wie kann ich meinen Code korrigieren?Erhalte den Wert eines Wörterbuchs nach Auswahl des Combobox-Wertes
from tkinter import *
from tkinter import ttk
class Application:
def __init__(self, parent):
self.parent = parent
self.value_of_combo='A'
self.combo()
def textArea(self, e):
self.value_of_combo = self.box.get()
# Get the content of the Text widget
r=self.thistextArea.get('1.0','1.end')
# If it is empty then insert the selected value directly
if not r:
self.thistextArea.insert(INSERT, self.box_values)
# If not empty then delete existing text and insert the selected value
else:
self.thistextArea.delete('1.0','1.end')
self.thistextArea.insert(END, self.box_values)
def combo(self):
self.box_value = StringVar()
mydict={'A':'Haha What','B':'Lala Sorry','C':'Ohoh OMG'}
self.box_values=mydict.keys()
self.box = ttk.Combobox(self.parent, textvariable=self.box_value,values= mydict,state='readonly')
self.box.bind('<<ComboboxSelected>>',self.textArea)
self.box.current(0)
self.box.grid(column=0, row=0)
self.thistextArea=Text(self.parent,height=50,width=50)
self.thistextArea.grid(column=0,row=1)
root = Tk()
app = Application(root)
root.mainloop()
Danke für die Lösung kann ich wissen, was die Option 1.0 und 1.end bedeuten? –
Gern geschehen. Die Schreibweise '1.0' bedeutet erste Zeile und erste Spalte (in einem Text-Widget beginnen Zeilen mit 1 und Zeilen beginnen mit 0), also bezieht sich dies auf das erste Zeichen des in Zeile 1 vorhandenen Texts. Für die Schreibweise' 1.End ', stellt es den zweiten Index dar, den wir an die entsprechende Methode übergeben (' delete() 'und' get() '). So ist '1.0' der Startindex, während' 1.End' der Endindex ist. Ich empfehle Ihnen, [diese Seite] (http://effbot.org/tkinterbook/text.htm) zu lesen, um mehr über diese Methoden, Notationen und Indizes zu erfahren. –