Seite 1 von 1

Probleme beim abspielen eines Codes

Verfasst: Mittwoch 2. Juni 2021, 13:10
von JonBach18
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()

Re: Probleme beim abspielen eines Codes

Verfasst: Mittwoch 2. Juni 2021, 13:27
von Glühbirne
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

Re: Probleme beim abspielen eines Codes

Verfasst: Mittwoch 2. Juni 2021, 20:57
von Dennis89
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