class ControlPanel(QtGui.QGroupBox): def __init__(self, parent, event_handler=DummyEventHandler()): # super(ControlPanel, self).__init__(parent) QtGui.QGroupBox.__init__(self, parent) self.parent = parent self.setTitle("Control") control_frame_FrameGrid = QtGui.QGridLayout() control_frame_FrameGrid.setSpacing(1) self.control_panel_widget = QtGui.QWidget(self) self.control_panel_widget.setGeometry(QtCore.QRect(10, 30, 151, 74)) self.connect_button = PushButton("Connect", tip_msg=CONNECT_BTN_HELP) self.reflash_button = PushButton("Reflash", tip_msg=REFLASH_BTN_HELP) self.discover_button = PushButton("Discover", tip_msg=DISCOVER_BTN_HELP) self.config_button = PushButton("Config", tip_msg=CONFIG_BTN_HELP) self.resp_time_button = PushButton( "RespTime", tip_msg=CHECK_RESPONSE_TIME_BTN_HELP) self.set_pin_button = PushButton("Set PIN", tip_msg=SET_PIN_BTN_HELP) self.setLayout(control_frame_FrameGrid) self.autoconnect_checkbox = CheckBox("Autoconnect", tip_msg=AUTOCONNECT_CHECKBOX_HELP) control_frame_FrameGrid.addWidget(self.connect_button, 0, 0) control_frame_FrameGrid.addWidget(self.reflash_button, 0, 1) control_frame_FrameGrid.addWidget(self.discover_button, 1, 0) control_frame_FrameGrid.addWidget(self.config_button, 1, 1) control_frame_FrameGrid.addWidget(self.set_pin_button, 2, 0) control_frame_FrameGrid.addWidget(self.resp_time_button, 2, 1) control_frame_FrameGrid.addWidget(self.autoconnect_checkbox, 3, 0, 1, 2) # connect buttons self.connect_button.clicked.connect(event_handler.connect_button_slot) self.discover_button.clicked.connect( event_handler.discover_emu_bt_slot) self.reflash_button.clicked.connect(event_handler.reflash_button_slot) self.config_button.clicked.connect(event_handler.config_button_slot) self.resp_time_button.clicked.connect( event_handler.estimate_response_time_slot) self.set_pin_button.clicked.connect(event_handler.set_pin_button_slot) self.event_handler = event_handler self.event_handler.add_event(self.set_connected) self.event_handler.add_event(self.set_disconnected) def set_connected(self): self.connect_button.setText("disconnect") self.connect_button.set_green_style_sheet() def set_disconnected(self): self.connect_button.setText("Connect") self.connect_button.set_default_style_sheet()
class BanksPanel(QtGui.QGroupBox): def __init__(self, parent, event_handler=DummyEventHandler()): super(BanksPanel, self).__init__(parent) frame_grid = QtGui.QGridLayout() frame_grid.setSpacing(1) self.event_handler = event_handler self.bank_name_max_len = 25 self.setTitle("Banks") # self.bank1_wear_lcd = LcdDisplay(tip_msg=LCD_WEAR_DISPLAY_TIP) # self.bank2_wear_lcd = LcdDisplay(tip_msg=LCD_WEAR_DISPLAY_TIP) # self.bank3_wear_lcd = LcdDisplay(tip_msg=LCD_WEAR_DISPLAY_TIP) settings_icon = QtGui.QIcon(SETTINGS_ICON) self.bank1_settings_btn = PushButton(tip_msg=BANK_SETTINGS_TIP) self.bank1_settings_btn.setIcon(settings_icon) self.bank2_settings_btn = PushButton(tip_msg=BANK_SETTINGS_TIP) self.bank2_settings_btn.setIcon(settings_icon) self.bank3_settings_btn = PushButton(tip_msg=BANK_SETTINGS_TIP) self.bank3_settings_btn.setIcon(settings_icon) self.auto_download_checkbox = CheckBox( "auto download", tip_msg=AUTO_DOWNLOAD_CHECKBOX_TIP) self.bank1pushButton = PushButton("bank 1", tip_msg=BANK_TIP) self.bank2pushButton = PushButton("bank 2", tip_msg=BANK_TIP) self.bank3pushButton = PushButton("bank 3", tip_msg=BANK_TIP) self.bank_name_line_edit = LineEdit( tip_msg="Provide new bank name. ENTER accepts", focus_event=event_handler.bank_name_line_edit_event, focus_out_event=event_handler.bank_name_line_focus_out_event) frame_grid.addWidget(self.bank1pushButton, 0, 0) frame_grid.addWidget(self.bank2pushButton, 1, 0) frame_grid.addWidget(self.bank3pushButton, 2, 0) frame_grid.addWidget(self.bank1_settings_btn, 0, 2) frame_grid.addWidget(self.bank2_settings_btn, 1, 2) frame_grid.addWidget(self.bank3_settings_btn, 2, 2) frame_grid.addWidget(self.bank_name_line_edit, 3, 0, 1, 3) frame_grid.addWidget(self.auto_download_checkbox, 4, 0) self.setLayout(frame_grid) self.bank1pushButton.clicked.connect(event_handler.bank1set_slot) self.bank2pushButton.clicked.connect(event_handler.bank2set_slot) self.bank3pushButton.clicked.connect(event_handler.bank3set_slot) self.bank_name_line_edit.returnPressed.connect( self.bank_name_line_edit_slot) def update_tip_msg_for_bank(self, bank_button_no, bank_name, msg): """ Update tip message for button {1, 2, 3} :param bank_button_no: :param msg: :return: """ bank_button = [ self.bank1pushButton, self.bank2pushButton, self.bank3pushButton ][bank_button_no] bank_button.update_tip_msg(msg, wrap=False) if len(bank_name) > 14: bank_name = bank_name[0:11] + '...' bank_button.setText(bank_name) def put_bank_name(self, name): self.bank_name_line_edit.setText(name[0:self.bank_name_max_len]) def get_bank_name_text(self): bank_name = str(self.bank_name_line_edit.text()) return bank_name[0:self.bank_name_max_len] def set_default_style_sheet_for_buttons(self): self.bank1pushButton.set_default_style_sheet() self.bank2pushButton.set_default_style_sheet() self.bank3pushButton.set_default_style_sheet() def bank_name_line_edit_slot(self): bank_name = self.bank_name_line_edit.text()[0:self.bank_name_max_len] self.bank_name_line_edit.setText(bank_name) self.event_handler.set_bank_name() self.bank_name_line_edit.clearFocus() def disable_active_button(self): to_signal(self.bank1pushButton.set_default_style_sheet)() to_signal(self.bank2pushButton.set_default_style_sheet)() to_signal(self.bank3pushButton.set_default_style_sheet)() def set_active_button(self, bank_no): to_signal(self.bank1pushButton.set_default_style_sheet)() to_signal(self.bank2pushButton.set_default_style_sheet)() to_signal(self.bank3pushButton.set_default_style_sheet)() set_green_style = \ [ self.bank1pushButton.set_green_style_sheet, self.bank2pushButton.set_green_style_sheet, self.bank3pushButton.set_green_style_sheet, ][bank_no] to_signal(set_green_style).emit()