我必须在tkinter中为我的学校项目做一个CRUD应用程序。到目前为止,我已经注册并登录了。现在我想从user.py
中的类User
中的类main.py
中的类App
中获取变量user_data
。在“用户”窗口中显示用户数据。main.py
from tkinter import *
from tkinter.messagebox import showerror
import sqlite3
db = sqlite3.connect("wypożyczalnia_aut.db")
cursor = db.cursor()
class App(Tk):
def __init__(self):
super().__init__()
self.title("Zaloguj Się")
self.geometry("300x400")
login_font = ("Comic Sans MS", 20, "bold")
Label(self, text="Zaloguj Się", font=login_font).pack(padx=10, pady=10)
self.username = Entry(self)
self.password = Entry(self, show="*")
self.username.pack(padx=10, pady=10)
self.password.pack(padx=10, pady=10)
self.login_btn = Button(self,text="Zaloguj Się", command=self.login).pack(padx=10, pady=10)
self.sign_up_btn = Button(self,text="Zarejestruj Się", command=self.open_window_sign_up).pack(padx=10, pady=10)
def open_window_sign_up(self):
from sign_up import SignUp
sign_up_window = SignUp(self)
sign_up_window.grab_set()
def login(self):
from user import User
cursor.execute("SELECT * FROM uzytkownicy WHERE nazwa=? AND haslo=?", (self.username.get(), self.password.get()))
global user_data
user_data = cursor.fetchone()
if user_data is not None:
user_window = User(self)
user_window.grab_set()
else:
showerror(title='Błąd',message='Niepoprawna Nazwa/Hasło')
if __name__ == "__main__":
app = App()
app.mainloop()
db.commit()
db.close()
user.py
from tkinter import *
import sqlite3
import main
class User(Toplevel):
def __init__(self,parent):
super().__init__(parent)
self.geometry("1280x720")
self.title("Panel Użytkownika")
self.data = main.user_data
我得到错误:AttributeError: module 'main' has no attribute 'user_data'
1条答案
按热度按时间qxsslcnc1#
您可以简单地将
user_data
传递给User
的示例,而不是使用全局变量。main.py
user.py