class StatusbarUI(object): def __init__(self, main_window: QMainWindow): """ 状态栏 外观模式 :param main_window: """ self.main_window = main_window self.statusbar = QStatusBar(self.main_window) self.ui_list = [] self.show_time = ShowTime(self.statusbar, 1) # 时间模块 self.placeholder = Placeholder(self.statusbar, 2) # 占位符 self.net_speed = NetSpeed(self.statusbar, -4) # 网速 self.monitor_port = MonitorPort(self.statusbar, -3) # 监听端口 self.online_host = OnlineHost(self.statusbar, -1) # 上线主机 def options(self) -> None: font = QFont() font.setPointSize(10) self.statusbar.setFont(font) # self.statusbar.setGeometry(QtCore.QRect(0, 0, 900, 50)) self.statusbar.setFixedHeight(30) self.main_window.setStatusBar(self.statusbar) # self.main_window.setStatusBar() # self.statusbar.setContextMenuPolicy(Qt.DefaultContextMenu) def setup_ui(self) -> None: self.statusbar.setObjectName("statusbar") self.options() self.load_ui() self.show_ui() if not settings.STATUSBAR_SHOW: self.statusbar.setHidden(False) # noinspection PyArgumentList def retranslate_ui(self) -> None: self.statusbar.setWindowTitle(_translate("StatusbarUI", "状态栏")) def load_ui(self) -> None: """ 加载模块 :return: """ self.ui_list.append(self.show_time) self.ui_list.append(self.placeholder) self.ui_list.append(self.net_speed) self.ui_list.append(self.monitor_port) self.ui_list.append(self.online_host) def show_ui(self) -> None: """ 显示数据 :return: """ for view in self.ui_list: view.setup_ui() view.retranslate_ui()