Seite 1 von 1

Umgang mit mehreren Entry-Feldern

Verfasst: Montag 20. Mai 2019, 19:02
von HLOO
Hallo,

Ich möchte gern mit Python/tkinter ein Sudoku-Löser bauen. Zur Probe baute ich erst einmal eins für kleine 6er Sudokus. Das hat soweit schon einmal toll funktioniert.
Für die Eingabe und Ausgabe habe ich mich für das Entry-feld entschieden, vielmehr 36 davon.
Was mich stört, ist dass ich jedes Eingabefeld einzeln definieren, packen, einlesen und ausgeben musste. Also in etwa so:

Eingabefeld_11 = Entry(Panel_1, bd=5, width=3)
Eingabefeld_12 = Entry(Panel_1, bd=5, width=3)
Eingabefeld_13 = Entry(Panel_1, bd=5, width=3)

Eingabefeld_66 = Entry(Panel_6, bd=5, width=3)

Bzw:
Eingabefeld_11.pack(side='left')
Eingabefeld_12.pack(side='left')
Eingabefeld_13.pack(side='left')
Label_13.pack(side='left') # für den Abstand zwischen der 3. und 4. Spalte
Eingabefeld_14.pack(side='left')

Eingabefeld_66.pack(side='left')

Oder:
Eingabefeld_11.delete(0,END); Eingabefeld_11.insert(1,Matrix[0][1])
Eingabefeld_12.delete(0,END); Eingabefeld_12.insert(1,Matrix[0][2])
Eingabefeld_13.delete(0,END); Eingabefeld_13.insert(1,Matrix[0][3])

Eingabefeld_66.delete(0,END); Eingabefeld_66.insert(1,Matrix[5][5])


Um die viele Schreibarbeit zu sparen, hätte ich gern eine Möglichkeit wo ich die Eingabefelder eleganter und effektiver mit einer bzw 2 for-Schleifen ansprechen kann.
Ich stelle mir das etwa so vor( z.B. beim Einlesen):
for x in range(9):
for y in range(9):
Liste.append(int(Eingabefeld_x_y.get())) #wobei x und y aber die Schleifenvariablen sein sollen

Ich habe nirgendwo etwas finden können, wie man so eine Variable in einer Variablenbezeichnung unterbringen kann.
Kann mir einer einen Tipp geben?

Danke, HLOO

Re: Umgang mit mehreren Entry-Feldern

Verfasst: Montag 20. Mai 2019, 19:23
von __deets__
Wenn du zu deiner Idee, die Felder in einer for-Schleife abzufragen einfach noch die Idee, sie auch in einer solchen zu erzeugen hinzufügst, dann bist du da wo du hin willst. Wichtig natürlich die Entries in einer geeigneten Datenstruktur - doppelt verschachtelte Liste, Wörterbuch mit (x, y)-Tupel - zu speichern.

Re: Umgang mit mehreren Entry-Feldern

Verfasst: Montag 20. Mai 2019, 21:00
von HLOO
Danke für den Hinweis.
Ich hab die Daten in einer Matrix gespeichert, das mit der Liste ist nur ein Zwischenschritt gewesen.
Aber ich weiß immer noch nicht wie ich in einer Schleife mehrere Eingabe-Felder erzeuge, die dann verschiedene Namen haben müssen.

HLOO

Re: Umgang mit mehreren Entry-Feldern

Verfasst: Montag 20. Mai 2019, 21:17
von __deets__
Warum sollten die denn Namen haben? Du stopfst die in eine Liste. Und sprichst sie über ihren Index an.

Re: Umgang mit mehreren Entry-Feldern

Verfasst: Dienstag 21. Mai 2019, 18:19
von HLOO
Ich glaube, ich verstehe langsam:
Du meinst ich mache eine Liste oder Matrix, welche nicht irgendwelche Werte, sondern Entry-Felder enthält.
Das werde ich mal probieren. Erstmal vielen Dank.

Gruß,
HLOO

Re: Umgang mit mehreren Entry-Feldern

Verfasst: Dienstag 21. Mai 2019, 19:14
von __deets__
Jupp. Genau das. Objekte sind Objekte sind Objekte (in Python). Der Sprache ist das wumpe, ob du int, set oder Entry Objekte in eine Datenstruktur packst.