这是使用PyQT5作为UI的首次提交,将后端和UI合并到1个工程中,统一使用了Python,没有使用JS和HTML
This commit is contained in:
93
UI/dtmgtUI.py
Normal file
93
UI/dtmgtUI.py
Normal file
@@ -0,0 +1,93 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
最终测试版本 - 确保窗口显示
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
from PyQt5.QtCore import Qt
|
||||
|
||||
# 添加项目根目录到Python路径
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
# 全局退出回调函数
|
||||
_on_exit_callback = None
|
||||
|
||||
def set_on_exit_callback(callback):
|
||||
"""设置退出时的回调函数"""
|
||||
global _on_exit_callback
|
||||
_on_exit_callback = callback
|
||||
|
||||
def main():
|
||||
print("1. 创建QApplication...")
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
print("2. 导入模块...")
|
||||
from views.login_dialog import LoginDialog
|
||||
from views.main_window import MainWindow
|
||||
from ui_utils.user_session import UserSession
|
||||
|
||||
print("3. 显示登录对话框...")
|
||||
login_dialog = LoginDialog()
|
||||
|
||||
# 确保登录对话框显示在最前面
|
||||
login_dialog.setWindowFlags(login_dialog.windowFlags() | Qt.WindowStaysOnTopHint)
|
||||
login_dialog.raise_()
|
||||
login_dialog.activateWindow()
|
||||
|
||||
# 执行对话框
|
||||
if login_dialog.exec_() != LoginDialog.Accepted:
|
||||
print("用户取消登录,退出程序")
|
||||
# 用户取消登录时,调用退出回调
|
||||
if _on_exit_callback:
|
||||
print("用户取消登录,调用退出回调...")
|
||||
_on_exit_callback()
|
||||
return -1 # 返回 -1 表示用户取消登录
|
||||
|
||||
# 获取登录用户信息并保存到全局会话
|
||||
user_info = login_dialog.get_user_info()
|
||||
if not user_info:
|
||||
print("登录信息获取失败,退出程序")
|
||||
# 登录信息获取失败时,调用退出回调
|
||||
if _on_exit_callback:
|
||||
print("登录信息获取失败,调用退出回调...")
|
||||
_on_exit_callback()
|
||||
return -1 # 返回 -1 表示登录失败
|
||||
|
||||
UserSession.set_user_info(user_info)
|
||||
print(f"4. 用户登录成功: {user_info['username']} (角色: {user_info['role']})")
|
||||
|
||||
print("5. 创建主窗口...")
|
||||
window = MainWindow()
|
||||
|
||||
# 确保窗口显示在前台
|
||||
window.show()
|
||||
window.raise_()
|
||||
window.activateWindow()
|
||||
|
||||
print("6. 窗口已显示")
|
||||
print("7. 进入事件循环...")
|
||||
|
||||
# 运行应用
|
||||
exit_code = app.exec_()
|
||||
print(f"8. 应用退出,退出码: {exit_code}")
|
||||
|
||||
# UI 事件循环结束后,调用退出回调
|
||||
if _on_exit_callback:
|
||||
print("事件循环结束,调用退出回调...")
|
||||
_on_exit_callback()
|
||||
|
||||
return exit_code
|
||||
|
||||
if __name__ == '__main__':
|
||||
print("=== DTM试验管理系统启动 ===")
|
||||
try:
|
||||
exit_code = main()
|
||||
print(f"=== 程序结束,退出码: {exit_code} ===")
|
||||
except Exception as e:
|
||||
print(f"=== 程序异常: {e} ===")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
Reference in New Issue
Block a user