""" 主窗口模块 """ from PyQt5.QtWidgets import QMainWindow, QTabWidget, QWidget, QVBoxLayout from PyQt5.QtCore import Qt from PyQt5.QtGui import QFont from .weighing_tab import WeighingTab from .company_tab import CompanyTab from .cargo_tab import CargoTab from .purchase_plan_tab import PurchasePlanTab from database import Database class MainWindow(QMainWindow): """主窗口类""" def __init__(self): super().__init__() self.db = Database() self.init_ui() def init_ui(self): """初始化用户界面""" self.setWindowTitle("地磅称重打印软件") self.setGeometry(100, 100, 1200, 800) # 窗口居中显示 self.center_window() # 设置大字体,适合中老年人使用 font = QFont("微软雅黑", 16) self.setFont(font) # 创建Tab页面 self.tab_widget = QTabWidget() self.tab_widget.setFont(font) # 创建各个Tab页面 self.purchase_plan_tab = PurchasePlanTab(self.db, main_window=self) self.weighing_tab = WeighingTab(self.db) self.company_tab = CompanyTab(self.db) self.cargo_tab = CargoTab(self.db) # 添加Tab页面(采购计划放在地磅单前面) self.tab_widget.addTab(self.purchase_plan_tab, "采购计划") self.tab_widget.addTab(self.weighing_tab, "地磅单管理") self.tab_widget.addTab(self.company_tab, "公司维护") self.tab_widget.addTab(self.cargo_tab, "货物维护") # 设置Tab页面切换时的回调,用于刷新数据 self.tab_widget.currentChanged.connect(self.on_tab_changed) # 设置中央部件 self.setCentralWidget(self.tab_widget) def on_tab_changed(self, index: int): """Tab页面切换时的回调""" # 切换到采购计划时,刷新列表 if index == 0: # 采购计划 self.purchase_plan_tab.refresh_list() # 切换到公司维护或货物维护时,刷新下拉列表 elif index == 2: # 公司维护 self.company_tab.refresh_list() elif index == 3: # 货物维护 self.cargo_tab.refresh_list() elif index == 1: # 地磅单管理 # 刷新下拉列表 self.weighing_tab.refresh_dropdowns() self.weighing_tab.refresh_list() def center_window(self): """窗口居中显示""" from PyQt5.QtWidgets import QDesktopWidget frame_geometry = self.frameGeometry() center_point = QDesktopWidget().availableGeometry().center() frame_geometry.moveCenter(center_point) self.move(frame_geometry.topLeft())