Button-Problem

Fragen zu Tkinter.
Antworten
fpourki
User
Beiträge: 3
Registriert: Dienstag 26. Juni 2018, 13:15

Ich bin Python-Neuling. Für die folgede SampleCode bekomme ich Fehlermeldungen:

"import tkinter

master = Tk()

var = IntVar()

c = Checkbutton(master, text="Expand", variable=var)
c.pack()

mainloop()"

master = Tk()
NameError: name 'Tk' is not defined

Process finished with exit code 1
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist ja auch richtig. Mit "import tkinter" bekommst du nur das Modul tkinter, nicht alles was darin enthalten ist. Und das ist auch gut so. Du musst also die Klassen, die du daraus verwenden willst, entsprechend ansprechen: tkinter.Tk(), tkinter.IntVar(), tkinter.Checkbutton().

Oft genutzt wird das aliasing in Python imports, um das etwas weniger tipp-intensiv zu machen: "import tkinter as tk". Und dann nur tk.Tk() etc.
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@fpourki: und wo Du gerade am Anfang bist, solltest Du gleich alles in Funktionen packen, dass Du nicht in Verlegenheit gerätst, aus Versehen globale Variablen benutzt:

Code: Alles auswählen

import tkinter as tk

def main():
    master = tk.Tk()
    var = tk.IntVar()
    tk.CheckButton(master, text="Expand", variable=var).pack()
    master.mainloop()

if __name__ == '__main__':
    main()
Antworten