Tkinter Problem mit Schleifen

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Sn0wF0x
User
Beiträge: 1
Registriert: Mittwoch 23. Juni 2021, 12:18

Mittwoch 23. Juni 2021, 12:23

Guten Tag

ich habe folgenden Code geschrieben (bin noch seeehr blutiger anfänger sry ^^) und versuche nun rauszufinden wieso er nicht tut, was ich hoffe das er tun wird:

Code: Alles auswählen

  
    xaxis=10
    yaxis=20  
  
  
    while anfangszahl <= endzahl:
        hochzaehlzahl=anfangszahl-1
        groesseportsarray=ports[hochzaehlzahl]
        Checkbutton(window, text=service[anfangszahl]).place(x=xaxis+10, y=yaxis+20)
        anfangszahl=anfangszahl+1
Was genau soll denn geschehen?

Ich möchte, dass mir eine Checkbox dynamisch generiert wird nach einem Array der 6 Elemente enthält. Allerdings wird immer nur der 6. EIntrag des Array generiert und alle anderen nicht.

Was genau nutzt du?
Ich nutze aktuell NumPy und Tkinter, der Rest des Quellcodes tut was er soll.
Sirius3
User
Beiträge: 15004
Registriert: Sonntag 21. Oktober 2012, 17:20

Mittwoch 23. Juni 2021, 14:46

Warum sind die Listen ports und service genau im einen Index gegeneinander verschoben?
Mit groesseportsarray machst Du auch gar nichts.
Statt einer while-Schleife benutzt man eine for-Schleife:

Code: Alles auswählen

for groesseportsarray, text in zip(ports, service[1:]):
    Checkbutton(window, text=text).place(x=xaxis+10, y=yaxis+20)
Da sich xaxis und yaxis nie verändern, liegen alle Checkbuttons übereinander, so dass Du nur das letzte siehst.
Statt place benutzt man auch pack oder grid, denn mit pack hast Du das Problem nicht:

Code: Alles auswählen

for text in service[1:]:
    Checkbutton(window, text=text).pack()
Antworten