troubles mit radiobuttons
Verfasst: Dienstag 29. März 2005, 02:39
hallo zusammen,
ich habe folgendes problem: nachstehender code ist teil einer größeren anwendung, es geht um gui und datenbank, habe da mal zur übung einiges ausprobiert. ursrprünglich gab es eine klasse Fenster, von der grundlegende attribute und methoden alle anderen fenster, wie HauptFenster, EingabeFenster und eben auch SuchFenster, PasswortFenster usw. usw. geerbt haben.
Nun zum eigentlichen Problem: Wie man unschwer erkennen kann gibt es hier eine methode, die nur mal zu Testzwecken so geschrieben wurde (get_selected): ausgebeben werden soll der jeweilige wert der StringVar() self.choice. Starte ich das SuchFenster für sich allein, klappt auch alles, wird aber SF z. B. über das HauptFenster (für Datenausgabe, usw) aufgerufen, wird None zurückgegeben, also nichts.
In der Zwischenzeit habe ich die Suchoption im HF eingebaut und es funzt tadellos, dennoch will ich wissen, verstehen, warum das nicht geht, oder nur halb.
Mal zum Code:
vielen dank im voraus
rolgal
ich habe folgendes problem: nachstehender code ist teil einer größeren anwendung, es geht um gui und datenbank, habe da mal zur übung einiges ausprobiert. ursrprünglich gab es eine klasse Fenster, von der grundlegende attribute und methoden alle anderen fenster, wie HauptFenster, EingabeFenster und eben auch SuchFenster, PasswortFenster usw. usw. geerbt haben.
Nun zum eigentlichen Problem: Wie man unschwer erkennen kann gibt es hier eine methode, die nur mal zu Testzwecken so geschrieben wurde (get_selected): ausgebeben werden soll der jeweilige wert der StringVar() self.choice. Starte ich das SuchFenster für sich allein, klappt auch alles, wird aber SF z. B. über das HauptFenster (für Datenausgabe, usw) aufgerufen, wird None zurückgegeben, also nichts.
In der Zwischenzeit habe ich die Suchoption im HF eingebaut und es funzt tadellos, dennoch will ich wissen, verstehen, warum das nicht geht, oder nur halb.
Mal zum Code:
Code: Alles auswählen
class SuchFenster(Fenster):
def __init__(self,lt,r):
Fenster.__init__(self,lt,r)
self.root.title("Suchfenster")
self.choice=StringVar()
# Normalerweise wird self.database vom HauptFenster übergeben,
# da dort schon eine Instanz aufgerufen wird.
self.database=DataBase('localhost','irgendwer','einedatenbank','einetabelle','ein....')
self.cols_names=[]
# Spaltennamen, der aktuellen Tabelle werden ermittelt
for elements in self.database.db_table_cols:
self.cols_names.append(elements[0])
self.entry=Entry(self.root)
self.entry.grid(row=3,column=0)
#entsprechend den ermittelten Namen wird das SF dynamisch aufgebaut
for i in range(len(self.cols_names)):
self.rb=Radiobutton(self.root,text=self.cols_names[i],
value=self.cols_names[i],
variable=self.choice)
self.rb.grid(row=i+2,column=1,padx=self.a_x,pady=self.a_y)
self.b_1=Button(self.root,text="Suche",command=self.get_selected)
self.b_1.grid(row=i+1,column=0)
self.root.mainloop()
def get_selected(self):
choice=self.choice.get()
print choice
# Funktion zum Testen was ausgegeben wird.
# Wie oben beschrieben Ergebnis nur, wenn es alleine verwendet wird.
rolgal