| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import sys
- from PyQt6.QtWidgets import QApplication, QMainWindow, QTabWidget, QWidget, QVBoxLayout
- from PyQt6.QtCore import Qt, QSize
- from ui.debug_module_window import DebugWindow
- from ui.play_module_window import PlayWindow
- from ui.log_viewer_window import LogViewerWindow
- # 导入任务类以确保它们被注册
- from kodi_util.kodi_play.kodi_play_task import chuankou, LinkageTask
- # 导入日志模块
- from kodi_util.LoggerToolModule import LoggerTool
- # 创建日志实例
- logger = LoggerTool(name='application_logger', log_file='application.log', log_dir='logs')
- class MainApplication(QMainWindow):
- """主应用窗口,包含三个标签页"""
-
- def __init__(self):
- super().__init__()
-
- logger.info("开始初始化主应用程序")
-
- # 设置窗口标题和大小
- self.setWindowTitle("多标签页应用")
- self.setMinimumSize(QSize(900, 700))
-
- # 创建中央部件
- self.central_widget = QWidget()
- self.setCentralWidget(self.central_widget)
-
- # 创建主布局
- self.main_layout = QVBoxLayout(self.central_widget)
- self.main_layout.setContentsMargins(5, 5, 5, 5)
- self.main_layout.setSpacing(0)
-
- # 初始化UI
- try:
- self.init_ui()
- logger.info("主应用程序初始化完成")
- except Exception as e:
- logger.error(f"主应用程序初始化失败: {str(e)}")
- raise
-
- def init_ui(self):
- """初始化用户界面"""
- logger.info("开始初始化用户界面")
-
- # 创建标签页部件
- self.tab_widget = QTabWidget()
- self.tab_widget.setTabPosition(QTabWidget.TabPosition.North)
- self.tab_widget.setDocumentMode(True)
-
- try:
- # 创建调试模块窗口
- logger.info("创建调试模块窗口")
- self.debug_window = DebugWindow()
-
- # 创建播放模块窗口,使用默认配置文件路径
- logger.info("创建播放模块窗口")
- self.play_window = PlayWindow()
-
- # 创建日志查看器窗口
- logger.info("创建日志查看器窗口")
- self.log_viewer_window = LogViewerWindow()
-
- # 添加标签页
- self.tab_widget.addTab(self.debug_window, "调试模块")
- self.tab_widget.addTab(self.play_window, "播放模块")
- self.tab_widget.addTab(self.log_viewer_window, "日志查看器")
- logger.info("标签页添加完成")
-
- # 将标签页部件添加到主布局
- self.main_layout.addWidget(self.tab_widget)
- logger.info("用户界面初始化完成")
-
- except Exception as e:
- logger.error(f"初始化用户界面时发生错误: {str(e)}")
- raise
- if __name__ == "__main__":
- logger.info("应用程序启动")
-
- try:
- app = QApplication(sys.argv)
- logger.info("QApplication创建成功")
-
- window = MainApplication()
- logger.info("主窗口创建成功")
-
- window.show()
- logger.info("主窗口显示成功")
-
- logger.info("进入应用程序主循环")
- sys.exit(app.exec())
-
- except Exception as e:
- logger.error(f"应用程序运行时发生错误: {str(e)}")
- sys.exit(1)
|