feat: 新增离线一机一码授权系统

This commit is contained in:
DXC
2026-05-11 09:48:07 +08:00
parent 94ed2f1f8d
commit cf387c40ab
5 changed files with 819 additions and 7 deletions

View File

@ -2996,23 +2996,49 @@ class WaterQualityGUI(QMainWindow):
item.setForeground(QColor(ModernStylesheet.COLORS.get('text_secondary', '#666666'))) # 原始颜色
# ============================================================
# 主启动逻辑
# ============================================================
def main():
"""主函数"""
import sys
# 离线授权验证拦截(必须在业务窗口创建前执行)
try:
from src.auth.license_manager import verify_license
from src.auth.license_dialog import LicenseDialog
except ImportError:
import os
_current_dir = os.path.dirname(os.path.abspath(__file__))
_project_root = os.path.abspath(os.path.join(_current_dir, '..', '..'))
if _project_root not in sys.path:
sys.path.insert(0, _project_root)
from src.auth.license_manager import verify_license
from src.auth.license_dialog import LicenseDialog
_is_license_valid, _license_msg = verify_license()
if not _is_license_valid:
_license_app = QApplication(sys.argv)
_license_app.setApplicationName("WaterQuality")
_dialog = LicenseDialog()
_dialog.exec_()
_license_app.quit()
sys.exit(0)
# 授权通过,正常载入主程序
app = QApplication(sys.argv)
# 设置应用信息
app.setApplicationName("Mega Water")
app.setOrganizationName("WaterQuality")
# 创建主窗口
window = WaterQualityGUI()
window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
#冻结只显示1个exe
# multiprocessing.freeze_support()
# 必须紧跟在 if __name__ == "__main__": 下面第一行
import multiprocessing
multiprocessing.freeze_support()
main()