ttk.Entry get-Methode

Fragen zu Tkinter.
Antworten
jasmin.mrcr
User
Beiträge: 8
Registriert: Sonntag 25. Juni 2023, 19:25

Moin Leute,
bei mir funktioniert seit neusten die get Methode nicht mehr. Weiß jemand wie ich Zugriff auf auf die Eingabe anders bekommen kann?

Hier ein kleines Beispiel:

Code: Alles auswählen

import tkinter as tk
from tkinter import ttk



def schreiben():
    text = entry1.get()
    ttk.Label(root, text=text).pack()


root = tk.Tk()
entry1 = ttk.Entry(root).pack()

ttk.Button(root, text="drucken", command=schreiben).pack()

root.mainloop()
mit der Fehlermeldung:

Code: Alles auswählen

ttk.Label(root, text=entry1.get()).pack()
                         ^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Code und Fehler passen nicht zusammen. Bitte den Code zeigen, der den Fehler produziert.
Benutzeravatar
Dennis89
User
Beiträge: 1156
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

dann könnte man mal nachschlagen, was "pack()" denn für einen Wert zurück gibt.


Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
jasmin.mrcr
User
Beiträge: 8
Registriert: Sonntag 25. Juni 2023, 19:25

__deets__ hat geschrieben: Mittwoch 13. September 2023, 10:40 Code und Fehler passen nicht zusammen. Bitte den Code zeigen, der den Fehler produziert.
Tut mir leid, ich habe mich verklickt, hier nochmal die richtige Fehlermeldung:

Code: Alles auswählen

text = entry1.get()
           ^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'
er nimmt aus irgendwelchen Gründen das get nicht
Benutzeravatar
grubenfox
User
Beiträge: 432
Registriert: Freitag 2. Dezember 2022, 15:49

Dennis89 hat geschrieben: Mittwoch 13. September 2023, 11:41 Hallo,

dann könnte man mal nachschlagen, was "pack()" denn für einen Wert zurück gibt.


Grüße
Dennis
Benutzeravatar
peterpy
User
Beiträge: 188
Registriert: Donnerstag 7. März 2013, 11:35

Hallo jasmin.mrcr,

was grubenfox meint:

Code: Alles auswählen

entry1 = ttk.Entry(root).pack()
print(entry1)
Ergibt None

Verwende:

Code: Alles auswählen

entry1 = ttk.Entry(root)
entry1.pack()
Gruss Peter
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Globale Variablen darf es nicht geben, alles was eine Funktion braucht muß sie über ihre Argumente bekommen:

Code: Alles auswählen

import tkinter as tk
from tkinter import ttk
from functools import partial


def schreiben(root, entry):
    text = entry.get()
    ttk.Label(root, text=text).pack()

def main():
    root = tk.Tk()
    entry1 = ttk.Entry(root)
    entry1.pack()

    ttk.Button(root, text="drucken", command=partial(schreiben, root, entry1)).pack()
    root.mainloop()

if __name__ == "__main__":
    main()
jasmin.mrcr
User
Beiträge: 8
Registriert: Sonntag 25. Juni 2023, 19:25

peterpy hat geschrieben: Mittwoch 13. September 2023, 15:08 Hallo jasmin.mrcr,

was grubenfox meint:

Code: Alles auswählen

entry1 = ttk.Entry(root).pack()
print(entry1)
Ergibt None

Verwende:

Code: Alles auswählen

entry1 = ttk.Entry(root)
entry1.pack()
Gruss Peter
Super danke, funktioniert!
Antworten