Checkbutton Frage/Problem - Anregung gesucht

Fragen zu Tkinter.
BlackJack

@Kalli87: Ja Du liegst falsch. 'PY_VAR0' ist eine Zeichenkette. Mit genau dem Inhalt denn man da sieht. Also ein 'P' gefolgt von einem 'Y' gefolgt von einem '_', und so weiter. Auf dieser Zeichenkette gibt es die Operationen die es auf allen Zeichenketten gibt. Das die Zeichenkette aus einem `StringVar`-Objekt erstellt wurde ”weiss” sie nicht, von einer Checkbox schon gar nichts. Man könnte jetzt natürlich Tk nach einem `StringVar`-Objekt fragen das den Namen hat der dem Wert der Zeichenkette entspricht, aber das wäre Unsinn denn von genau so einem Objekt hat man diese Zeichenkette ja erzeugt. Das sollte man vielleicht nicht machen sondern die Operationen nutzen die `StringVar`-Objekte haben um an die Zeichenkette zu kommen die *darin* gespeichert ist.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

@BlackJack: Ähm ok, ich werds mir zu hause mal in ruhe anschauen.
Danke
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Ich meld mich doch eher zurück als gedacht :)
BlackJack hat geschrieben:Du musst `get()` halt auf den einzelnen Elementen der Liste aufrufen und *das* dann ausgeben. Um etwas mit jedem Element einer Liste zu machen gibt es ``for``-Schleifen. Hier sind wir jetzt aber wieder bei absolutem Basiswissen.
Ich versteh worauf du hinaus willst ich hab es auch getestet, nur mit einer einzelnen Ausgabe ohne "for-Schleife", was mir jetzt aber Kopfzerbrechen bereitet ist das ich eine leere Ausgabe bekomme, also man sieht einfach nichts, keine Zahl, kein Buchstabe einfach nichts.
BlackJack

@Kalli87: Für `StringVar`-Objekte die eine leere Zeichenkette beinhalten wäre das das erwartete Ergebnis.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Ah ok also werden die Werte nicht richtig an die Checkbox-Variable übergeben.
Also muss ich da nochmal ran
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Guten Morgen Forum :)
und zwar geht es noch um die checkboxen/checkbuttons, eher um es besser zu verstehen gerade.

Die checkbuttons/boxen sind doch so aufgebaut
text=zeigt die beschriftung an
variable=ist die verbindung zu dieser Checkbox
off/onvalue= den aktiven und deaktivierten wert festlegen
command=um eine Funktion aufzurufen bei Betätigung

Ich bin immer davon ausgegangen das der On-Value mit der variable zusammenhängt sprich sobald aktiv wird die variable mit dem onvalue belegt.
Ich hatte die variable ja immer (self.checkboxen) genannt also "variable=self.checkboxen" und durch testen hatte ich ja immer nur eine leere Ausgabe was laut BlackJack zu erwarten war.
Durch probieren hab ich einfach die "variable" so belegt "variable=self.checkboxen.append(serie_studie)" und schon hatte ich keine leere Ausgabe mehr sondern das gewünschte Ergebnis worauf ich mit eurer Hilfe ja schon ewig dran hänge. (An dieser Stelle fiel mir auch die Sache mit dem StringVar() war weg)
Einziges Problem ist nur noch das jede Checkbox alle Werte bekommt statt nur den einen, eine for-Schleife sollte da ganze dann in den Griff bekommen.

Jetzt hätte ich gern gewusst ob ich hier nun ein Fehler in meinen Gedankengängen hatte was das belegen der checkbox-variable betrifft und was nun mit der StringVar nun is also warum ich diese "eigentlich" weglassen kann.

Danke
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@Kalli87: ich hatte schon gute Hoffnungen, dass das irgendwann was wird. :(
Du weißt welchen Wert variable bei "variable=self.checkboxen.append(serie_studie)" bekommt?!?!?!?!?!?!
variable erwartet einen Wert vom Typ StringVar. Und keine Liste mit StringVars!

Ich habe Dir bereits am 2. April und 10.April empfohlen, diesen ganzen Tk-Kram erst einmal zu vergessen und Dich mit den Grundlagen von Listen und deren Verarbeitung vertraut zu machen. Jetzt haben wir den 20. und es wird mal wieder Zeit zu sagen, ohne Grundlagen kommst Du nicht weiter! Auch wenn Python eine dynamisch typisierte Sprache ist, es gibt trotzdem Typen. Und wenn Du die wild durcheinander wirfst, kann nichts sinnvolles rauskommen, und solange Du das nicht verstanden hast, brauchst Du erst gar nicht weiter zu machen.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

@Sirius3: Wenn ich dir jetzt sage bzw. schreibe was ich als nächstes machen muss springst du im Dreieck und verlierst den glauben an Menschheit, wenn du diese nicht bereits verloren hast.
Dieser Thread dient ja schon zum Verständnis und mehr als Fragen kann ich nicht.

Einfacher wäre es natürlich wenn man einfach klipp und klar sagt: "Kalli87 pass mal auf dort, dort und dort is der Fehler. Schreib das so hier und dann funktioniert das auch."
Aber das is wahrscheinlich wieder zu einfach um mir mal klipp und klar zu zeigen was richtig wäre und vllt auch zu viel verlangt von euch.

Ich weiß ihr habt eure Prinzipien und wollt das man selbst lernt und nicht nach Lösungen fragt bzw. ihr keine "Hausaufgaben" machen wollt. Aber es sind keine Hausaufgaben es ist ein Projekt was von mir sehr viel abverlangt und das is mir bewusst aber so komm ich auch nicht weiter.

Und ganz ehrlich, ich war froh das durch mein probieren mal keine! leere Ausgabe, PY_VAR# oder <tkinter.StringVar object at 0x3140310> hatte sondern eine vernünftige Ausgabe mit dem was ich die ganze Zeit haben will! Das könnt ihr mir nicht übel nehmen das ich mir Gedanken mache und probiere. Das es nicht der Sinn von programmieren ist auch mir klar.

Das mit den Checkboxen is eher ein Fliegenschiss zu dem was noch alles vor mir liegt......

Vllt sollte man diesen Thread zu "Checkboxen des Grauens" um nennen, so fühlt es sich langsam für mich an.

Danke
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@Kalli87: es ist ja nicht so, dass nicht alle Bausteine zur Lösung hier in diesem Thread schon vorgekommen wären. Du brauchst sie nur zusammenzusetzen. Aber genau da hast Du ja Dein Problem, weil Dir die nötigen Grundlagen fehlen und wenn Du hier alles vorgekaut bekommst, landest Du beim nächsten Problem wieder hier und am Ende ist es wirklich so, dass Leute im Forum Dir das ganze Programm schreiben. Gegen Gedankenmachen und Probieren ist nichts einzuwenden, solange es irgendwo hin führt. Mir scheint es aber so, dass Du im Dunkeln tappst, hin und wieder mal ein Körnchen findest, es aber wieder fallen läßt, weil Du es selbst nicht merkst.
Ich hatte Dir schonmal geschrieben, dass Du Dein Problem in Teile spalten musst. Also wenn ein Checkbutton funktioniert, dieses Prinzip auf viele Checkbuttons übertragen..
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

@Sirius3: Ich bin dabei hab mein Fehler auch gefunden bzw. hab was gefunden was nicht bei mir ganz stimmte.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Ihr dürft jetzt feiern!
Habs gelöst :) und ihr seit erlöst von eurer Qual was die Checkboxen betrifft

DANKE
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Hast Du es denn jetzt auch verstanden?

(um die "Qual" ggf. weiterzuführen... :mrgreen: )
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Klaro :D
Oder willst du es jetzt drauf anlegen Hyperion? :twisted:
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Kalli87 hat geschrieben: Oder willst du es jetzt drauf anlegen Hyperion? :twisted:
Irgend wie schon :mrgreen:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

@Hyperion: Dacht ich´s mir doch :D dann leg mal los :mrgreen:
Antworten