# coding:utf-8 import os import sys from loguru import logger from PyQt6.QtCore import Qt, QTimer from PyQt6.QtWidgets import QApplication from app.core import cfg from app.view.login_window import RegisterWindow from app.view.main_window import MainWindow from welcome_video import WelcomeVideoPlayer from app.resource.resource import * logger.add( "logs/log_{time:YYYY-MM-DD_HH-mm-ss}.log", # 每次启动都新建 rotation="500MB", encoding="utf-8", enqueue=True, retention="10 days", ) if cfg.get(cfg.dpiScale) != "Auto": os.environ["QT_ENABLE_HIGHDPI_SCALING"] = "0" os.environ["QT_SCALE_FACTOR"] = str(cfg.get(cfg.dpiScale)) app = QApplication(sys.argv) # 移除不支持的属性设置 w = RegisterWindow() mainWindow = None def showMainWindow(): global mainWindow mainWindow = MainWindow() mainWindow.show() w.close() w.loginSignal.connect(showMainWindow) # 显示登录窗口 w.show() # 检查是否首次运行 if cfg.firstRun.value: logger.info("首次运行应用程序,显示欢迎视频") # 隐藏登录界面元素 w.pivot.hide() w.stackedWidget.hide() w.logoImage.hide() # 视频播放完成后更新配置 def update_first_run_flag(): # 更新首次运行标志 cfg.firstRun.value = False cfg.save() # 连接视频完成信号到更新标志函数 w.videoPlayer.videoFinished.connect(update_first_run_flag) # 显示欢迎视频 w.show_welcome_video() else: # 非首次运行,确保界面元素可见 w.pivot.show() w.stackedWidget.show() w.logoImage.show() app.exec()