| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- """
- 主窗口模块
- """
- 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())
|