Tkinter GUI startet nicht. Was kann man tun?
Ich habe meine erste Tkinter GUI gemacht. Das Problem an der ist: Wenn ich über IDLE die Datei starte, wird die GUI angezeigt. Sonst, wenn ich die Datei normal starte, nicht. Was kann man da tun?
Hier mein Code:
import tkinter
import os
def shutdown1():
os.system("shutdown -t 1 -s")
shutdown = tkinter.Tk()
title = shutdown.title("")
shutdown.geometry("400x400")
herunter = tkinter.Button(shutdown, text="Herunterfahren", command = lambda: shutdown1())
herunter.config(height = "100", width = "100")
herunter.pack()
shutdown.mainloop
1 Antwort
Nicht shutdown.mainloop sondern shutdown.mainloop()!
... dann läuft es. Du willst ja die mainloop-Methode aufrufen. Methoden sind Funktionen und diese brauchen beim Aufruf () am Ende falle keine Parameter übergeben werden bzw. eine Übergabe von Parametern innerhalb der ().
Außerdem kannst du die folgende Zeile verkürzen:
herunter = tkinter.Button(shutdown, text="Herunterfahren", command=shutdown1)
In diesem Fall willst du die Funktion nicht aufrufen sondern die Funktion an sich übergeben. Dazu musst du die () weglassen. So kannst du dir die lambda-Funktion sparen!
Was hat funktioniert? Meinst du das shutdown.mainloop? Falls ja weil das gültiger Code ist, nur eben nicht der Aufruf der Funktion...
Danke, jetzt funktioniert alles. Nur mal so aus Interesse wieso hat es über IDLE funktioniert ?