Erzeugung eines Entrys mit einer Schleife

Fragen zu Tkinter.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Wie schon mehrmals geschrieben, wenn Du eine variable Anzahl an Eingabefeldern hast, dann ist das ein seltsamer Datenbankentwurf. Solange ich nicht verstehe, was das soll, kann ich nicht helfen.

Zum konkreten Code: etwas an self innerhalb einer for-Schleife zu binden ist nie sinnvoll, weil es mit dem nächsten Schleifendurchgang wieder überschrieben wird.
Das self.index = 0 ist genauso unsinn, weil das mit der for-Schleife auch sofort überschrieben wird.
Warum formatierst Du eine Ganzzahl als float?

Code: Alles auswählen

    def database_entry(self, event):
        number_of_transfers = int(self.entryInput_query_number.get())
        self.entries = []
        for index in range(number_of_transfers):
            tkinter.Label(self.root, text='Argument [%d]:' % index).pack(side='top')
            entry = tkinter.Entry(self.root, width=30)
            entry.pack(side='top')
            entry.bind('<Return>', self.test)
            self.entries.append(entry)

    def test(self, event):
        example = [
            entry.get()
            for entry in self.entries
        ]
        print(example)
MartinJe
User
Beiträge: 19
Registriert: Montag 26. April 2021, 06:09

Die Verarbeitung mit der Datenbank kommt erst in späteren Schritten.
Die Eingabe dient nur um die Daten für die Weiterverarbeitung, mehr nicht.

Mir ist nicht bekannt, dass Python oder allgemein man einen "offline Speicher"-Modul gibt, da es dass scheinbar nicht gibt benutze ich eben eine Datenbank um etwas dauerhaft abzulegen und bei Wiederöffnung des Programmes darauf zuzugreifen.

Vielen Dank für den optimierten Code, dies hilft mir schon viel weiter.
Wenn ich es also richtig verstanden hab, ist es nie sinnig in Schleifen variablen an self zu binden?
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Also brauchst Du eigentlich gar keine Datenbank?
Um Dir helfen zu können, müssen wir halt wissen, welche Art Daten Du speichern möchtest und wie Du damit arbeiten mußt. Es gibt etliche Arten von "offline-Speicher". Was der richtige ist, kommt auf die Aufgabe an.
MartinJe
User
Beiträge: 19
Registriert: Montag 26. April 2021, 06:09

Ok, sorry, dies wusste ich nicht. Nein brauch nicht umbedingt eine Datenbank.

Ich muss eigentlich nur Strings speichern und eventuell verändern.
Die Strings die dort geschrieben werden, werden gebraucht um die jeweiligen Werte in der csv-Datei abzusuchen und weiter zu verarbeiten.
Benutzeravatar
Dennis89
User
Beiträge: 1156
Registriert: Freitag 11. Dezember 2020, 15:13

Code: Alles auswählen

Wenn ich es also richtig verstanden hab, ist es nie sinnig in Schleifen variablen an self zu binden?
Ja, weil die Variable ja nach oder während jedem Schleifendurchgang einen neuen Wert zugewiesen bekommt. Wenn du nach dem die Schleife durchgelaufen ist, auf die Variable zugreifst, merkst du, dass sie an den letzten Wert gebunden ist.
Teste das doch mal in einem einfachen Programm aus, das wird es vielleicht deutlicher.

Noch etwas zu Schluss: Du hast hier die Chance dass dir Profis (ich bin keiner) helfen. Nutze das und beantworte jede Frage so detailliert wie möglich. Das bringt dich und dein Programm enorm weiter.

Grüße und viel Erfolg
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Es ginge viel schneller, wenn Du endlich beschreiben würdest, was Du eigentlich machen möchtest.
Für einfache Listen gibt es zB. json oder csv als Speicherformat.
MartinJe
User
Beiträge: 19
Registriert: Montag 26. April 2021, 06:09

Also, im Grunde genommen ist es so, dass ich eine csv-Datei von einer Anlage (x-Beliebig) bekomme, diese ist willkürlich angelegt und hat keine Struktur. Das Programm [ich hab schon ein Programm geschrieben, dass genau das macht was ich möchte nur muss ich hier immer im Programm selbst den Code ändern was ich nicht will] soll nun die Datei neustrukturieren und sortieren, damit man es dann sauber in ein Diagramm plotten kann.

Warum die Eingaben? Die Eingaben dienen dazu um die Argumente die auch die csv-Datei besitzt abzusuchen. Da die jeweiligen Argumente sich aber immer wieder ändern können möchte ich diese über mein Programm schreiben, eventuell auch wieder verändern oder eben löschen und dann in einen Speicher ablegen. Meine Idee war eben diese in einer Datenbank abzulegen und diesen als Offline-Speicher zu verwenden.

Und mehr Informationen hab ich auch nicht.
Antworten