Probleme beim abspielen eines Codes

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
JonBach18
User
Beiträge: 46
Registriert: Dienstag 22. Dezember 2020, 13:32

Hallo Leute,

ich habe hoffentlich nur ein kleines Problem.
Ich habe Python und PyCharm mir runtergeladen und habe folgendes Problem:
Wenn ich mein Code mit PyCharm abspiele müsste eigentlich ein Fenster aufgehen, tut es leider aber nicht :( Ich hoffe Ihr könnt mir helfen!!
Mein Code lautet:

Code: Alles auswählen

from tkinter import *
class Student:
   def __init__(self,root):
       self.root=root
       self.root.title("Student Management System")
       self.root.gemetory("1350x700+0+0")

       title=Label(self.root,text="Student Management System",font=("times new roman",40,"bold"),bg="yellow",fg="red")
       title.pack(side=TOP)
       
root=Tk()
Glühbirne
User
Beiträge: 7
Registriert: Samstag 23. Januar 2021, 14:34

Hallo JonBach18,

ich vermute, mainloop() fehlt:

Code: Alles auswählen

if __name__ == '__main__':
   root=Tk()
   root.mainloop()
Ergänzend: Sternchen-Importe sind meist keine gute Idee.

Viele Grüße
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

kommt eine Fehlermeldung bei dir? Dein gezeigter Code sollte zumindest ein Fenster ohne Inhalt öffnen.
Ergänzend zu dem Hinweis auf die *-Importe, dadurch holst du dir alle Namen des Moduls in deinen Namensraum, dazu gehören auch Namen die im Modul importiert werden. Man kann im Code zum einen nicht mehr erkennen, wo die Namen her kommen und zum anderen ist die Gefahr von Namenskollisionen sehr hoch.

Ein Pyhton-Programm wird meist aus einer Funktion, die sich 'main' nennt gesteuert. In dieser legst du auch den Titel deines GUI's fest, bevor du das Objekt aufrufst. Sich auf eine Größe des Fensters festzulegen kann zu Problemen führen, wenn man den Code an verschiedenen PC's/Bildschirme ausführt.

Ich würde es zum Beispiel so machen:

Code: Alles auswählen

#!/usr/bin/env python3

import tkinter as tk


class Student(tk.Frame):
   def __init__(self, master):
       tk.Frame.__init__(self, master)
       title=tk.Label(self, text="Student Management System",font=("times new roman",40,"bold"),bg="yellow",fg="red")
       title.grid(row=0, column=0)
       

def main():
    root = tk.Tk()
    root.title("Student Management System")
    app = Student(root)
    app.pack()
    app.mainloop()
    

if __name__ == "__main__":
    main()
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Antworten