E41222753_NinikYuniarsih_Ju.../main.py

69 lines
2.4 KiB
Python

import sys
import os
from PyQt5.QtWidgets import QApplication
from gui.main_window import MainWindow
from gui.login_dialog import LoginDialog
from gui.register_dialog import RegisterDialog
def main():
# Create necessary directories
os.makedirs('data', exist_ok=True)
os.makedirs('models', exist_ok=True)
app = QApplication(sys.argv)
# Show login and main window with logout loop support
def show_next_window():
# Tampilkan login dialog terlebih dahulu
show_login = True
while True:
if show_login:
login_dialog = LoginDialog()
result = login_dialog.exec_()
# Cek apakah user ingin ke halaman register
if login_dialog.should_show_register:
show_login = False # Tampilkan register dialog next
continue
# Cek apakah login berhasil
if result == LoginDialog.Accepted and login_dialog.login_success:
# Create and show main window
window = MainWindow(login_dialog.username or "Admin")
# Connect logout signal to show login again
window.logout_signal.connect(show_next_window)
window.show()
break
else:
# Login canceled, quit application
app.quit()
break
else:
# Tampilkan register dialog
register_dialog = RegisterDialog()
result = register_dialog.exec_()
# Cek apakah user ingin kembali ke login
if register_dialog.should_show_login:
show_login = True # Kembali ke login
continue
# Cek apakah register berhasil
if result == RegisterDialog.Accepted and register_dialog.register_success:
# Setelah register berhasil, kembali ke login
show_login = True
continue
else:
# Register canceled, quit application
app.quit()
break
# Start the application by showing login dialog
show_next_window()
sys.exit(app.exec_())
if __name__ == '__main__':
main()