显示没有属性的空白 Tk 窗口



到目前为止,我的代码是非常基本的,所以当我第一次运行它时,它工作得很好,但是,一旦我为每个按钮命令添加了两个函数,而不是显示标题和小部件,什么都没有显示,相反,它只是一个标题为"Tk"的空白屏幕。它之前工作正常,当我尝试删除这些功能时,它仍然存在相同的问题。

import sqlite3
import sys
import os
from random import randint
from tkinter import *
from tkinter import messagebox as ms
from tkinter import ttk
import uuid
screen = Tk()
class Main:
def __init__(self, screen):
self._frame = None
self.loginscreen = StringVar()
self.username = StringVar()
self.password = StringVar()
self.var_FName = StringVar()
self.var_SName = StringVar()
self.var_password1 = StringVar()
self.var_usertype = StringVar()
self.UserID = StringVar()
def Mainmenu(self):
screen.geometry("300x250")
screen.title("Manager of stuff")
Label(screen, text = "Login Menu", bg = "light blue", width = "300", font = ('',35),pady = 10).pack()
Label(text = "").pack()
Button(text = "Login", height = "2", width = "30", command = self.login).pack()
Label(text = "").pack()
Button(text = "Register",height = "2", width = "30", command = self.register).pack()
def login(self):
login = Toplevel(screen)
login.title("Login")
login.geometry("500x450")
Label(login, text = "Please enter your username and password below: ").pack()
Label(login, text = "").pack()
Label(login, text = "Username: ").pack()
Entry(login, textvariable = username).pack()
Label(login, text = "").pack()
Label(login, text = "Password: ").pack()
Entry(login, textvariable = password, show= "*").pack()
Label(login, text = "").pack()
Button(login, text = "Login As a Teacher", width = 20, height = 3, command = self.TeachLoginFunc).pack()
Label(login, text = "").pack()
Button(login, text = "Login As a Student", width = 20, height = 3, command = self.Main.StudLoginFunc).pack()
Label(login, text = "").pack()
Button(login, text = "Back", width = 30, height = 4, command = self.logindestroy).pack()
login.mainloop()
def register(self):
regscreen = Toplevel(screen)
regscreen.title("Registration")
regscreen.geometry("500x500")
Label(regscreen, text = "Please enter your username and password below: ").pack()
Label(regscreen, text = "").pack()
Label(regscreen, text = "Firstname: ").pack()
Entry(regscreen, textvariable = var_FName).pack()
Label(regscreen, text = "").pack()
Label(regscreen, text = "Surname: ").pack()
Entry(regscreen, textvariable = var_SName).pack()
Label(regscreen, text = "").pack()
Label(regscreen, text = "Password: ").pack()
Entry(regscreen, textvariable = var_password1).pack()
Label(regscreen, text = "").pack()
Button(regscreen, text = "Teacher", width = 10, height = 1, command = self.teachregfunc).pack()
Label(regscreen, text = "").pack()
Button(regscreen, text = "Student", width = 10, height = 1, command = self.studregfunc).pack()
Label(regscreen, text = "").pack()
Button(regscreen, text = "Back", width = 30, height = 4, command = self.regscreendestroy).pack()
regscreen.mainloop()    
Main(screen)
screen.mainloop()

只是我的tkinter以某种方式损坏了还是什么,还是代码以某种方式损坏了?

你还没有告诉python你想运行什么函数。

尝试:

Main(screen).Mainmenu()

而不是:

Main(screen)

最新更新