Seite 2 von 5
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Donnerstag 2. April 2015, 12:50
von Kalli87
@BlackJack:
Wenn Du erst nachlesen musst was ein Generatorausdruck ist, wie kommst Du denn dann dazu einen zu schreiben? Wenn Du dort eine Liste haben möchtest, warum schreibst Du dann einen Generatorausdruck und keine „list comprehension” (LC). Oder halt eine Schleife wie man sie schreiben würde wenn man weder Generatorausdruck noch LC kennt‽
Laut Sirius3 sollte ich StringVar am besten in eine liste packen darauf is das ganze ja erst entstanden.
Hab ja auch in meinem vorherigem post auch geschrieben das ich " <generator object <genexpr> at 0x2d0bd70> " bekommen habe und deswegen danach gesucht habe.
Hätte das Stückchen Code mit dem Geschlecht nicht dummerweise geposted hätte es keine gesehen, hab es aber abgändert.......
Was binde ich denn immer noch zuviel an das Objekt?
Wie sagt man so schön? Probieren geht über studieren, klar probier ich rum da ich keine Ahnung habe wo nun das Problem genau liegt. Ich finde auch nix im Internet was ähnlich vom Problem her aufgebaut is und meine Bücher sind da braucht man gar nicht drüber reden.
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Donnerstag 2. April 2015, 13:05
von Sirius3
@Kalli87: Wenn Du es nicht selbst herausfinden willst, warum sind "self.studie", "self.serie" oder "self.label_data" ans Objekt gebunden?
Dass Du die StringVars in eine Liste packen sollst ist doch gar nicht falsch, Du hast aber scheinbar immer noch nicht verstanden warum, sonst würdest Du nicht immer wieder fragen. Das Problem ist ja, dass Variablen mit falschen Typen an Funktionen übergeben werden, die dann irgendetwas seltsames damit anstellen, was nicht zu dem gewünschten Ergebnis führt. Tk ist in dieser Hinsicht sehr großzügig, was die Fehlersuche nicht unbedingt einfacher macht.
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Donnerstag 2. April 2015, 13:30
von Kalli87
@Sirius3: Mal ganz langsam bitte, wie kommst du drauf das "self.label_data" ein der Checkbox hängt? da steht doch nur in der "onvalue" self.serie und self.studie und wird auch nicht irgendwie in der Checkbox verwendet. Oder reden wir hier nicht mehr von der Checkbox

?????
Wenn ich das ganze nicht in die Liste packe wird doch immer nur der letzte wert der Checkbox übertragen, der erste wird dann immer überschrieben oder geht verloren oder wie auch immer, jedenfalls ist er nicht da. Soweit waren wir doch schon....
Das mit der Liste hatte das Problem gelöst, nur das jetzt dieses komische "generator" gedönse auftaucht und mir neue Probleme bereitet nervt einfach.
Ich bekomm ja nicht mal Fehlermeldungen, nur Ausgaben die nichts aussagen.
Ich hab extra eine Funktion noch geschrieben die mir das ganze in eine Datei schreibt was genau übertragen wird und da wird nur der ausgewählte Radio-Button richtig übertragen ansonsten kommt irgendwelche grütze die meilen weit davon entfernt ist was eigentlich dort hätte stehen müssen. (Von den Checkboxen her))
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Donnerstag 2. April 2015, 14:02
von BlackJack
@Kalli87: `self.label_data` wird ganz offensichtlich auf `self` als Attribut gesetzt. Warum? Und nein das hat nichts mit der `Checkbox` zu tun.
Dieses „"generator" gedönse” taucht ja nicht einfach so aus dem nichts auf, das hast *Du* ja in das Programm eingebaut. Schreib keinen Generatorausdruck wenn Du keinen Generatorausdruck haben möchtest. :K
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Donnerstag 2. April 2015, 14:02
von Sirius3
@Kalli87: Du hast scheinbar so wenig von Deinem eigenen Programm verstanden, dass Du nicht merkst, dass BlackJack oder ich von ganz unterschiedlichen Dingen reden. Programmieren heißt immer, dass man ein komplexes Problem in einfachere Teile zerlegt, diese löst und dann das ganze zu komplizierteren Konstrukten zusammensetzt. Wenn Du das einfache Problem (eine Checkbox) gelöst hast, mußt Du nun das komplexere Problem (viele Checkboxen) lösen, indem Du die Standardlösung eins -> viele anwendest, die bei allen ähnlichen Problemen anwendbar ist: Listen.
Ich würde Dir empfehlen, weg von den Checkboxen, hin zu einem simplen Problem zu gehen, an dem Du das Problem eins -> viele üben kannst. So wie jetzt kommen wir glaube ich nicht weiter. Beispiel: eine Zahl verdoppeln, viele Zahlen verdoppeln.
Ich habe nie gesagt, dass "self.label_data" an irgendwelchen Checkboxen hängen, sondern gefragt warum label_data an self hängt?
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Mittwoch 8. April 2015, 10:51
von Kalli87
So ich hoffe ihr habt Ostern gut überstanden

Ich hab die freien Tage genutzt um mal abzuschalten und hab mir heute den Code mal angeschaut und hab es nun so gelöst.
Code: Alles auswählen
self.cursor.execute("select bilder.studie_nr, bilder.serie_nr, bilder.image_nr from bilder, patient where patient.patnu=bilder.patnu and patient.patnu=%s", [self.eingabe.get()])
self.checkbox=[]
for row,(studie, serie, image) in enumerate(self.cursor, 1):
label_data = \
[
(row, 'lightblue'),
(self.datum_ausgabe, ''),
(image, ''),
(serie, ''),
(studie, ''),
]
self.liste=('Serie: {} Studie: {}'.format(str(serie),str(studie)))
self.checkbox.append(self.liste)
for column, (text, background) in enumerate(label_data):
Label(self.ueberframe, text=text, relief='sunken', anchor=CENTER, background=background).grid(row=row, column=column, sticky=NSEW)
Checkbutton(self.ueberframe,text=self.liste ,variable=self.checkbox, onvalue=self.liste,command=self.list_checkbox,offvalue="", ).grid(row=row, column=5)
Jetzt haut auch die Ausgabe mit "print" hin und bei "text" wird es auch richtig ausgegeben.
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Mittwoch 8. April 2015, 11:07
von BlackJack
@Kalli87: Da wird immer noch zu viel an das Objekt gebunden und mindestens zwei Namen sind total falsch und irreführend.
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Mittwoch 8. April 2015, 11:52
von Kalli87
@BlackJack: Du schaffst es auch immer wieder meine kleinen Erfolgserlebnisse kaputt zu machen

Ps.: Bissl Spaß muss auch mal sein

Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Mittwoch 8. April 2015, 12:23
von Sirius3
@Kalli87: Du hast immer noch die irrsinnige Zuweisung der Checkbox-Liste an das variable-Argument. Was glaubst Du soll das bewirken? self.liste ist neben der Tatsache, das das kein Attribut sein sollte, zudem noch ein schlechter Variablenname. Die str-Aufrufe im format sind überflüssig. Für was brauchst Du die checkbox-Liste jetzt überhaupt noch?
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Mittwoch 8. April 2015, 12:45
von Kalli87
@Sirius3: Das meine Checkbox extrem zugemüllt ist mir bewusst. Das mit dem str-Aufruf hab ich behoben. self.liste heißt nicht mehr self.liste und der code sieht mittlerweile auch bissl anders aus aber auch nur minimal.
Was ich jetzt noch brauche oder machen will bzw. lösen muss ist das jede Checkbox ihren eigenen Wert hat also von studie und serie, aber bis jetzt is es eher so das jede checkbox alle werte hat von studie und serie wenn ich diese aktiviere was natürlich müll is.
Ps.: Mal eine Frage am rand, warum wird mein Code eigentlich immer so hart auseinandergenommen und so kritisiert? Ich weiß ja selbst das der wirklich nicht schön und auch an gewissen stellen mehr als überflüssig is.
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Mittwoch 8. April 2015, 13:26
von BlackJack
@Kalli87: Zur Frage am Rand: Das passiert nicht nur bei Deinem Code. Wenn man Fehler sieht die nahelegen das jemand etwas nicht vollständig verstanden hat oder so wichtige, grundlegende Sachen wie schlechte Namensgebung, sollte man da dann etwa nichts sagen? Das führt letztendlich nur zu Folgeproblemen wenn man das nicht angeht.
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Mittwoch 8. April 2015, 13:29
von Sirius3
@Kalli87: nimm's nicht persönlich. Die Kritik soll Dir helfen, selbst an Deinem Code zu arbeiten. Jeder unnötige Balast macht ihn schwerer Lesbar, auch für Dich. Funktionen sollen möglichst gekapselt sein, also so wenig Interaktion mit der Außenwelt haben wie möglich. Weil jede Interaktion eine potentielle Fehlerquelle ist. Unsinnige Attribut-Zuweisungen sind so ein Fall.
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Mittwoch 8. April 2015, 13:41
von Kalli87
@BlackJack und @Sirius3: Ach quatsch! Darüber braucht ihr euch keinen Kopf machen das ich das persönlich nehme

Der Thread heißt ja auch nicht umsonst
"Checkbutton Frage/Problem -
Anregung gesucht" und außerdem will ich ja auch lernen

Nur das Ihr ab und zu darunter leiden müsst nehmt ihr ja schon in kauf und ich muss damit leben das eure Antworten ziemlich raffiniert verschlüsselt sind bzw. so umschrieben sind das man Sie auf Anhieb nicht versteht und ich diese teilweise mehrmals lesen muss um diese zu verstehen

Also ich seh es vollkommen gelassen obwohl es manchmal schon den Tag vermießen kann

Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Mittwoch 8. April 2015, 15:20
von Kalli87
Ich bräuchte mal nen Gedankenanstoß von euch
Und zwar möchte ich, hier in diesem Fall sinds 2 Checkbutton die aus der Schleife entstehen, so ansprechen das jeder seinen eigenen Wert hat.
Aktuell siehts eher so aus das jeder von diesen 2 alle Werte hat bzw jeder den letzten Wert hat, schöner is es wenn das getrennt wäre.
Das ganze hatte ich außerhalb der beiden "for-Schleifen" versucht aber ohne Erfolg.
Code: Alles auswählen
self.cursor.execute("select bilder.studie_nr, bilder.serie_nr, bilder.image_nr from bilder, patient where patient.patnu=bilder.patnu and patient.patnu=%s", [self.eingabe.get()])
self.checkbox=[]
for row,(studie, serie, image) in enumerate(self.cursor, 1):
label_data = \
[
(row, 'lightblue'),
(self.datum_ausgabe, ''),
(image, ''),
(serie, ''),
(studie, ''),
]
self.serie_studie=('Serie: {} Studie: {}'.format(serie,studie))
self.checkbox.append(self.serie_studie)
for column, (text, background) in enumerate(label_data):
Label(self.ueberframe, text=text, relief='sunken', anchor=CENTER, background=background).grid(row=row, column=column, sticky=NSEW)
Checkbutton(self.ueberframe,text=self.serie_studie,variable=self.serie_studie,command=self.list_checkbox).grid(row=row, column=5)
Über "command" hab ich es halt versucht mir das ganze irgendwie getrennt auszugeben was nicht funktionierte.
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Mittwoch 8. April 2015, 15:36
von Sirius3
@Kalli87: zum allerletzten Mal, welche Variablen sollten **keine** Attribute von self sein? Und ich will jetzt mindestens zwei Variablen wissen
Und was für ein Typ muß das Objekt haben, das Du dem variable-Argument von Checkbutton übergibst?
Bevor Du wieder irgendwo anders herumprobierst, beantworte bitte diese zwei Fragen, sonst drehen wir uns hier noch bis Weihnachten im Kreis.
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Donnerstag 9. April 2015, 07:19
von Kalli87
@Sirius3:

ok ok bevor wir wirklich noch bis Weihnachten hier sitzen

Ich hab jetzt bei "datum_ausgabe" und bei "serie_studie" das self entfernt ^^
Ich denke mal dass das Objekt vom Typ "liste" sein müsste.
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Donnerstag 9. April 2015, 07:26
von EyDu
Kalli87 hat geschrieben:Ich denke mal dass das Objekt vom Typ "liste" sein müsste.
Schade, zweiter Versuch

Kleiner Hinweis: Du hattest es schon richtig.
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Donnerstag 9. April 2015, 07:39
von Kalli87
@EyDu: Etwa wieder das mit dem StringVar? Hatte ehrlich gesagt gehofft das ich das so lösen konnte ^^ da hab ich mich wohl getäuscht
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Donnerstag 9. April 2015, 07:54
von Sirius3
@Kalli87: im Moment gerade ein IntVar, weil Du on- und off-Value wieder entfernt hast. "datum_ausgabe" hatte ich jetzt gar nicht auf dem Schirm, weil das von irgendwo außerhalb Deines Code-Schnipsles kam. Also bleibt noch mindestens ein Attribut das nicht sein sollte.
Re: Checkbutton Frage/Problem - Anregung gesucht
Verfasst: Donnerstag 9. April 2015, 08:20
von Kalli87
@Siruis3: Bist du dir da ganz sicher? Ich würde dir da jetzt voll widersprechen, aus dem Grund weil:
cursor liegt außerhalbe
ueberframe liegt ebenso außerhalb
list_checkbox liegt genauso außerhalb
Code: Alles auswählen
self.cursor.execute("select bilder.studie_nr, bilder.serie_nr, bilder.image_nr from bilder, patient where patient.patnu=bilder.patnu and patient.patnu=%s", [self.eingabe.get()])
self.checkbox=StringVar()
for row,(studie, serie, image) in enumerate(self.cursor, 1):
checkboxen=[]
label_data = \
[
(row, 'lightblue'),
(datum_ausgabe, ''),
(image, ''),
(serie, ''),
(studie, ''),
]
serie_studie=('Serie: {} Studie: {}'.format(serie,studie))
checkboxen.append(self.checkbox)
for column, (text, background) in enumerate(label_data):
Label(self.ueberframe, text=text, relief='sunken', anchor=CENTER, background=background).grid(row=row, column=column, sticky=NSEW)
Checkbutton(self.ueberframe,text=serie_studie,variable=self.checkbox, onvalue=serie_studie, offvalue="",command=self.list_checkbox).grid(row=row, column=5)