Programm erweitern , schwerpunk ,,punkte"

Ja, jetzt kann man’s starten (wenn man noch all ü durch ue und alle ß durch ss ersetzt…)

Jetzt stellt sich die Frage, was genau die Frage ist. Wenn es nur darum geht, die rechte Seite ~„im gleichen Stil“ dazuzubasteln, dann ist das erstmal Fleißarbeit: Du weißt, wie man Buttons, Labels und Checkboxes erstellt (dass man das vermutlich nicht lösen sollte, indem man die einzeln erstellt und händisch mit irgendwelchen place...-Aufrufen pixelgenau platziert ist ein anderer Punkt).

Oder geht es darum, die Funktionalität umzusetzen, die damit geboten werden soll?

In beiden Fällen würde ich erwarten, dass man erkennt, dass du da irgendwas versucht hast…

Da muss halt zb die Punkte nach dem kniffelregel gemacht werden (siehe Screenshot). Naja selbst buttons usw erstellen bekomme ich nicht hin… bin halt wirklich sehr schlecht in Informatik… das problem fängt schon damit an, dass ich nicht weiß, wie ich zb diese rechte spalte an dem linken ,anheften"/ erweiterten kann. Klar, wenn ich die 220 x 390 durch die 370x40 ersetze, wird das Fenster schonmal größer. Aber dann gehts auch nicht mehr weiter…

Ja das sehe ich auch so, diese Aufgabe ist mit sehr viel Fleiß verbunden…

Ja wenn man die Grundlage, wie ihr, beherrscht schoooon. Aber für mich ist das eher der tod…:persevere:

@Marco13 , sag doch mal was…

1 Like

Wie könnte eine Antwort auf diese Frage aussehen, die nicht daraus besteht, die vollständige Lösung zu posten?

Davon, das als „Informatik“ zu bezeichnen, halte ich nicht viel. Die Aufgabe hat, mit viel gutem Willen, das Ziel, ~„da ein bißchen was kennenzulernen“, ~„mal zu sehen, wie das so geht, mit einem GUI in Python“. Eigentlich wäre das auch für mich nicht ganz uninteressant, aber … deswegen werde ich nicht deine Aufgaben lösen.

Ja, mach’ das Fenster größer, und dann ein paar

checkbuttonFuerEinser = Checkbutton(master=frameAuswahl, ... , command=einserAusgewaehlt)
checkbuttonFuerEinser.place(x=215, y=15, width=20, height=20)
....

bis alle Buttons da sind. (Es geht bestimmt auch einfacher, aber arrays scheinen noch nicht drangekommen zu sein, und welche Layout-Möglichkeiten es da gibt, weiß ich nicht).

checkbuttonFuerEinser = Checkbutton(master=frameAuswahl, ... , command=einserAusgewaehlt) checkbuttonFuerEinser.place(x=215, y=15, width=20, height=20)

Ist das dieses 1-6 Kästchen?

Das ist die checkboxFuerEinser. Deswegen heißt das so. Es gäbe dann halt noch eine checkboxFuerZweier,… checkboxFuerChance.

Nochmal: Was da rauskommt, wird nicht „gut“ oder „schön“ sein, aber … wenn es dein Ziel wäre, etwas „gutes“ oder „schönes“ zu machen, hättest du ja eine andere Frage gestellt.

D.h. einfach das vorhandene mit viel Copy+Paste (und Anpassen der place-Aufrufe) so hindengeln, dass du es abgeben kannst, eine (gute) Note bekommst, und dann glaubst, dich mit Informatik auszukennen.

Ich werde nie denken, dass ich in info gut sei​:joy:… mir ist bewusst, dass mir das einfach nicht liegt…

Und inwiefern soll ich das mit den place- aufrufen anpassen?

Nun, schreib’

checkbuttonFuerEinser.place(x=215, y=15, width=20, height=20)

und schau’ wo der der Button erscheint, und wenn er zu weit links ist, ändere es zu

checkbuttonFuerEinser.place(x=275, y=15, width=20, height=20)

… (ja, eben nicht Informatik…)

Aber das machen wir momentan in Informatik…

Das soll vielleicht eine Vorbereitung sein, darauf, dass man, wenn man Informatiker wird, nichts macht, was mit dieser Wissenschaft im engeren Sinne zu tun hat, sondern halt ~„irgendwas, damit auf dem Bildschirm das erscheint, was da erscheinen soll“. Das spielt auch keine so große Rolle. Um die Aufgabe zu lösen, musst du da irgendwelche GUI-Komponenten mühsam auf dem Bildschirm platzieren. Vermutlich wird niemand dir dieser Arbeit abnehmen. (Ich jedenfalls nicht…)

Marco meinte damit, dass das auch ein bisschen mit Design zu tun hat. Informationsmathematiker != Designer. :wink:

Wenn du Arrays (also Listen) verwendest, kannst du in einer Schleife die Checkbutton ganz einfach absolut positionieren, indem nur etwas zum y-Wert addierst…

Also ich wüsste nicht wie das gehen soll :grimacing::sweat_smile:

Das hatte ich dir mal gezeigt :wink:

# Checkbutton
checkbuttons = []
for i in range(5):
    checkbutton = Checkbutton(
        master=frameAuswahl,
        bg="white",
        anchor="w",
        offvalue=0,
        onvalue=1,
        variable=werte[i],
        command=auswahl_click,
    )
    checkbutton.place(x=15 + i * 40, y=65, width=20, height=20)
    checkbuttons.append(checkbutton)

Das würde den kompletten Code um einiges verkürzen, denk ich

1 Like

Wie würrde man den ,anderen kasten" (der unter gelb orange) hinzufügen?

Hab leider keine Zeit, aber gelbe und orange „Kasten“ müssten Frame s sein.

Ja ich meine so die 2 Kästchen, die untereinander liegen & in denen die buttons 1-6 & die Punkte stehen

das funktioniert nicht… :sob: