application.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import sys
  4. from PyQt6.QtWidgets import QApplication, QMainWindow, QTabWidget, QWidget, QVBoxLayout
  5. from PyQt6.QtCore import Qt, QSize
  6. from ui.debug_module_window import DebugWindow
  7. from ui.play_module_window import PlayWindow
  8. from ui.log_viewer_window import LogViewerWindow
  9. # 导入任务类以确保它们被注册
  10. from kodi_util.kodi_play.kodi_play_task import chuankou, LinkageTask
  11. # 导入日志模块
  12. from kodi_util.LoggerToolModule import LoggerTool
  13. # 创建日志实例
  14. logger = LoggerTool(name='application_logger', log_file='application.log', log_dir='logs')
  15. class MainApplication(QMainWindow):
  16. """主应用窗口,包含三个标签页"""
  17. def __init__(self):
  18. super().__init__()
  19. logger.info("开始初始化主应用程序")
  20. # 设置窗口标题和大小
  21. self.setWindowTitle("多标签页应用")
  22. self.setMinimumSize(QSize(900, 700))
  23. # 创建中央部件
  24. self.central_widget = QWidget()
  25. self.setCentralWidget(self.central_widget)
  26. # 创建主布局
  27. self.main_layout = QVBoxLayout(self.central_widget)
  28. self.main_layout.setContentsMargins(5, 5, 5, 5)
  29. self.main_layout.setSpacing(0)
  30. # 初始化UI
  31. try:
  32. self.init_ui()
  33. logger.info("主应用程序初始化完成")
  34. except Exception as e:
  35. logger.error(f"主应用程序初始化失败: {str(e)}")
  36. raise
  37. def init_ui(self):
  38. """初始化用户界面"""
  39. logger.info("开始初始化用户界面")
  40. # 创建标签页部件
  41. self.tab_widget = QTabWidget()
  42. self.tab_widget.setTabPosition(QTabWidget.TabPosition.North)
  43. self.tab_widget.setDocumentMode(True)
  44. try:
  45. # 创建调试模块窗口
  46. logger.info("创建调试模块窗口")
  47. self.debug_window = DebugWindow()
  48. # 创建播放模块窗口,使用默认配置文件路径
  49. logger.info("创建播放模块窗口")
  50. self.play_window = PlayWindow()
  51. # 创建日志查看器窗口
  52. logger.info("创建日志查看器窗口")
  53. self.log_viewer_window = LogViewerWindow()
  54. # 添加标签页
  55. self.tab_widget.addTab(self.debug_window, "调试模块")
  56. self.tab_widget.addTab(self.play_window, "播放模块")
  57. self.tab_widget.addTab(self.log_viewer_window, "日志查看器")
  58. logger.info("标签页添加完成")
  59. # 将标签页部件添加到主布局
  60. self.main_layout.addWidget(self.tab_widget)
  61. logger.info("用户界面初始化完成")
  62. except Exception as e:
  63. logger.error(f"初始化用户界面时发生错误: {str(e)}")
  64. raise
  65. if __name__ == "__main__":
  66. logger.info("应用程序启动")
  67. try:
  68. app = QApplication(sys.argv)
  69. logger.info("QApplication创建成功")
  70. window = MainApplication()
  71. logger.info("主窗口创建成功")
  72. window.show()
  73. logger.info("主窗口显示成功")
  74. logger.info("进入应用程序主循环")
  75. sys.exit(app.exec())
  76. except Exception as e:
  77. logger.error(f"应用程序运行时发生错误: {str(e)}")
  78. sys.exit(1)