2026-02-06 09:52:23 +08:00

57 lines
1.9 KiB
Python

from __future__ import annotations
import sys
from PySide6.QtGui import QIcon, QPalette, QColor
from PySide6.QtWidgets import QApplication, QMainWindow, QTabWidget
from ameba_control_panel import config
from ameba_control_panel.controllers.device_tab_controller import DeviceTabController
class MainWindow(QMainWindow):
def __init__(self) -> None:
super().__init__()
self.setWindowTitle(config.APP_NAME)
self._tabs = QTabWidget()
self.setCentralWidget(self._tabs)
self.controllers: list[DeviceTabController] = []
for profile in config.DEVICE_PROFILES:
controller = DeviceTabController(profile)
self.controllers.append(controller)
self._tabs.addTab(controller.view, profile.label)
def closeEvent(self, event) -> None: # noqa: N802
for c in self.controllers:
c.shutdown()
super().closeEvent(event)
def _apply_light_palette(app: QApplication) -> None:
palette = QPalette()
palette.setColor(QPalette.Window, QColor(245, 245, 245))
palette.setColor(QPalette.WindowText, QColor(0, 0, 0))
palette.setColor(QPalette.Base, QColor(255, 255, 255))
palette.setColor(QPalette.AlternateBase, QColor(240, 240, 240))
palette.setColor(QPalette.ToolTipBase, QColor(255, 255, 255))
palette.setColor(QPalette.ToolTipText, QColor(0, 0, 0))
palette.setColor(QPalette.Text, QColor(0, 0, 0))
palette.setColor(QPalette.Button, QColor(240, 240, 240))
palette.setColor(QPalette.ButtonText, QColor(0, 0, 0))
palette.setColor(QPalette.BrightText, QColor(255, 0, 0))
app.setPalette(palette)
def main() -> None:
QApplication.setStyle("Fusion")
app = QApplication(sys.argv)
_apply_light_palette(app)
window = MainWindow()
window.resize(1200, 800)
window.show()
sys.exit(app.exec())
if __name__ == "__main__":
main()