def __init__(self, parent=None):
        super(MangaTrackerConfigWindow, self).__init__(parent)
        self.setupUi(self)
        self.config = Config()
        self.database_name_text.setText(self.config.database_name)

        # Set up Show Empty Series option
        self.show_empty_series_button_group = QButtonGroup()
        self.show_empty_series_button_group.addButton(
            self.show_empty_series_yes_button, 1)
        self.show_empty_series_button_group.addButton(
            self.show_empty_series_no_button, 0)

        if self.config.show_empty_series:
            self.show_empty_series_yes_button.setChecked(True)
        else:
            self.show_empty_series_no_button.setChecked(True)

        # Set up Default to GUI option
        self.default_to_gui_button_group = QButtonGroup()
        self.default_to_gui_button_group.addButton(
            self.default_to_gui_yes_button, 1)
        self.default_to_gui_button_group.addButton(
            self.default_to_gui_no_button, 0)

        if self.config.default_to_gui:
            self.default_to_gui_yes_button.setChecked(True)
        else:
            self.default_to_gui_no_button.setChecked(True)

        self.config_save.clicked.connect(self.save_changes)
        self.config_cancel.clicked.connect(self.close)
Exemplo n.º 2
0
class ChooseOneOfWidget(QWidget):
    toggled = Signal(int, bool)

    def __init__(self, title: str, index_to_label: Dict[int, str], is_vertical=True,
                 checked_index: Optional[int] = None, parent=None):
        super().__init__(parent)
        self.__mapping = {}
        self.__main_layout = QVBoxLayout()
        self.__group_box = QGroupBox(title)
        self.__button_group = QButtonGroup()
        if is_vertical:
            self.__group_box_layout = QVBoxLayout()
        else:
            self.__group_box_layout = QHBoxLayout()

        for index, label in index_to_label.items():
            button = QRadioButton(label)
            self.__button_group.addButton(button, index)
            self.__group_box_layout.addWidget(button)
            if checked_index == index:
                button.setChecked(True)

        self.__group_box.setLayout(self.__group_box_layout)
        self.__button_group.idToggled.connect(self.__on_toggled)
        self.__main_layout.addWidget(self.__group_box)
        self.setLayout(self.__main_layout)

    @Slot(int, bool)
    def __on_toggled(self, index, is_checked):
        self.toggled.emit(index, is_checked)

    def get_checked(self) -> int:
        return self.__button_group.checkedId()
class MangaTrackerConfigWindow(QDialog, ui_configdialog.Ui_ConfigDialog):
    def __init__(self, parent=None):
        super(MangaTrackerConfigWindow, self).__init__(parent)
        self.setupUi(self)
        self.config = Config()
        self.database_name_text.setText(self.config.database_name)

        # Set up Show Empty Series option
        self.show_empty_series_button_group = QButtonGroup()
        self.show_empty_series_button_group.addButton(
            self.show_empty_series_yes_button, 1)
        self.show_empty_series_button_group.addButton(
            self.show_empty_series_no_button, 0)

        if self.config.show_empty_series:
            self.show_empty_series_yes_button.setChecked(True)
        else:
            self.show_empty_series_no_button.setChecked(True)

        # Set up Default to GUI option
        self.default_to_gui_button_group = QButtonGroup()
        self.default_to_gui_button_group.addButton(
            self.default_to_gui_yes_button, 1)
        self.default_to_gui_button_group.addButton(
            self.default_to_gui_no_button, 0)

        if self.config.default_to_gui:
            self.default_to_gui_yes_button.setChecked(True)
        else:
            self.default_to_gui_no_button.setChecked(True)

        self.config_save.clicked.connect(self.save_changes)
        self.config_cancel.clicked.connect(self.close)

    def save_changes(self):
        show_empty_series = self.show_empty_series_button_group.checkedId()
        self.config.set_property("show_empty_series", show_empty_series)

        default_to_gui = self.default_to_gui_button_group.checkedId()
        self.config.set_property("default_to_gui", default_to_gui)

        name = self.database_name_text.text()
        self.results_dialog = QMessageBox()

        if name == self.config.database_name:
            self.close()
        elif is_database(name):
            self.config.set_property("database_name", name)
            self.results_dialog.setText("Database name has been changed. ")
            self.results_dialog.show()

            # set up database if table doesn't exist
            DatabaseManager(name, init_database, False)

            self.close()
        else:
            self.results_dialog.setText("Database name must match "
                                        "the format *.db and not be "
                                        "a pre-existing file.")
            self.results_dialog.show()
Exemplo n.º 4
0
 def init(self):
     widget = QWidget()
     layout = QGridLayout(widget)
     layout.setSpacing(0)
     layout.setContentsMargins(0, 0, 0, 0)
     num = 0
     self.ColorDict = dict()
     self.ButtonList = QButtonGroup()
     for column in range(self._columns):
         for row in range(self._rows):
             if num < len(self.palette):
                 newColor = self.palette[num]
                 button = QPushButton('')
                 button.setContentsMargins(0,0,0,0)
                 button.setStyleSheet("padding: 0px;margin: 0px;")
                 button.setFixedSize(20,20)
                 self.ColorDict[button] = self.palette[num]
                 self.ButtonList.addButton(button)
                 pixmap = QPixmap(20, 20)
                 pixmap.fill(newColor)
                 button.setIcon(QIcon(pixmap))
                 layout.addWidget(button, row, column)
                 num+=1
             else:
                 break
     self.ButtonList.buttonClicked.connect(self.handleButton)
     self.setDefaultWidget(widget)
Exemplo n.º 5
0
    def __init__(self, current_path=None):
        super(self.__class__, self).__init__()
        self.setupUi(self)

        # Create button group
        self.grp_buttons = QButtonGroup()
        self.btn_import.released.connect(self.import_asset)

        self.initDB()
        self.getJobs()
        self.parseJobPath(current_path)
        self.initJob()

        self.populateStages()
        self.populateEntities()

        # Pre-set combo boxes
        self.cmb_stages.setCurrentIndex(self.stages.index(self.stage_name))
        self.cmb_jobs.setCurrentIndex(self.jobs.index(self.job_name))
        self.cmb_entities.setCurrentIndex(self.entities.index(
            self.entity_name))

        self.le_in.tagSelected.connect(self.activate_tag)
        self.cmb_jobs.currentIndexChanged.connect(self.change_job)
        self.cmb_stages.currentIndexChanged.connect(self.change_stage)
        self.cmb_entities.currentIndexChanged.connect(self.change_entity)
        self.refresh_asset_list()

        # Set stylesheet
        self.setStyleSheet(hou.qt.styleSheet())
        self.show()
Exemplo n.º 6
0
class ButtonGroupWidget(QGroupBox):
    def __init__(self, parent=None):
        super(ButtonGroupWidget, self).__init__(parent)
        self._selectedOption = -1
        self.buttonGroup = QButtonGroup()
        self.layoutGroupBox = QVBoxLayout(self)

    def addRadioButton(self, optionText, optionId):
        print(optionText)
        radioButton = QRadioButton(optionText)
        radioButton.clicked.connect(self.updateOptionSelected)
        self.layoutGroupBox.addWidget(radioButton)
        self.buttonGroup.addButton(radioButton, optionId)

    def updateOptionSelected(self):
        # print(self.buttonGroup.checkedId()) # for test purpose
        # self.selectedOption = self.buttonGroup.checkedId()
        # print(self._selectedOption) # for test purpose
        self.selectedOption = self.buttonGroup.checkedId()
        QApplication.postEvent(
            self, QKeyEvent(QEvent.KeyPress, Qt.Key_Enter, Qt.NoModifier))

    def getSelectedOption(self):
        print("get selectedOption is called")
        return self._selectedOption

    def setSelectedOption(self, selectedOption):
        # print ("selectedOption",selectedOption)
        print("set selectedOption is called")
        self._selectedOption = selectedOption
        self.buttonGroup.button(selectedOption).setChecked(True)

    selectedOption = Property(int, getSelectedOption, setSelectedOption)
Exemplo n.º 7
0
    def _create_switch(self, box, layout, col, labels):
        if labels is None:
            return None

        l = QLabel(labels[0], box)
        l.setMinimumHeight(20)
        l.setAlignment(Qt.AlignCenter | Qt.AlignBottom)

        font = l.font()
        font.setPointSize(7)
        font.setBold(True)
        l.setFont(font)
        layout.addWidget(l, 3, col, Qt.AlignBottom | Qt.AlignCenter)

        r1 = QRadioButton(box)
        r1.setStyleSheet(
            'QRadioButton::indicator{subcontrol-position:center;}')
        layout.addWidget(r1, 4, col, Qt.AlignCenter)

        r2 = QRadioButton(box)
        r2.setStyleSheet(
            'QRadioButton::indicator{subcontrol-position:center;}')
        layout.addWidget(r2, 5, col, Qt.AlignCenter)

        l = QLabel(labels[1], box)
        l.setAlignment(Qt.AlignCenter)
        l.setFont(font)
        layout.addWidget(l, 6, col, Qt.AlignTop | Qt.AlignCenter)

        g = QButtonGroup(box)
        g.addButton(r1)
        g.addButton(r2)
        r1.setChecked(True)

        return r2
    def __init__(self, config: ConfigFactory, logger: LoggerFactory,
                 title: str, surpacs: list):
        super(ChoiceSurpacDialog, self).__init__()
        self.config = config
        self.logger = logger

        self.setWindowTitle(title)
        self.setModal(True)
        self.setWindowFlag(Qt.WindowContextHelpButtonHint, False)
        self.surpacs = surpacs
        self.choice_surpac_button_group = QButtonGroup()
        self.choice_surpac_button_group.setExclusive(True)
        layout = QVBoxLayout()
        for surpac_id, choice in enumerate(surpacs):
            surpac_item = QRadioButton(choice)
            self.choice_surpac_button_group.addButton(surpac_item)
            self.choice_surpac_button_group.setId(surpac_item, surpac_id)
            if surpac_id == 0:
                surpac_item.setChecked(True)
                self.surpac_id = 0
            layout.addWidget(surpac_item)
        self.choice_surpac_button_group.buttonClicked.connect(
            self.choice_surpac_change)
        self.buttons = QDialogButtonBox(
            QDialogButtonBox.Ok | QDialogButtonBox.Cancel, Qt.Horizontal, self)
        self.buttons.accepted.connect(self.accept)
        self.buttons.rejected.connect(self.reject)
        layout.addWidget(self.buttons)
        self.setLayout(layout)
Exemplo n.º 9
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.parent = parent
        self.lca_scores_widget = LCAScoresTab(parent)
        self.lca_overview_widget = LCIAResultsTab(parent)

        self.layout.setAlignment(QtCore.Qt.AlignTop)
        self.layout.addLayout(get_header_layout('LCA Results'))

        # buttons
        button_layout = QHBoxLayout()
        self.button_group = QButtonGroup()
        self.button_overview = QRadioButton("Overview")
        self.button_overview.setToolTip(
            "Show a matrix of all functional units and all impact categories")
        button_layout.addWidget(self.button_overview)
        self.button_by_method = QRadioButton("by LCIA method")
        self.button_by_method.setToolTip(
            "Show the impacts of each functional unit for the selected impact categories"
        )
        self.button_by_method.setChecked(True)
        self.scenario_label = QLabel("Scenario:")
        self.button_group.addButton(self.button_overview, 0)
        self.button_group.addButton(self.button_by_method, 1)
        button_layout.addWidget(self.button_by_method)
        button_layout.addWidget(self.scenario_label)
        button_layout.addWidget(self.scenario_box)
        button_layout.addStretch(1)
        self.layout.addLayout(button_layout)

        self.layout.addWidget(self.lca_scores_widget)
        self.layout.addWidget(self.lca_overview_widget)

        self.button_clicked(False)
        self.connect_signals()
Exemplo n.º 10
0
class SimSpeedControls(QHBoxLayout):
    def __init__(self,
                 sim_controller: SimController,
                 parent: Optional[QWidget] = None) -> None:
        super().__init__(parent)
        self.sim_controller = sim_controller
        self.button_group = QButtonGroup(self)
        self.buttons: dict[SimSpeedSetting, QPushButton] = {}

        for speed_setting in SimSpeedSetting:
            button = QPushButton(speed_setting.text)
            button.setCheckable(True)  # TODO: CSS
            self.button_group.addButton(button, id=speed_setting.speed_factor)
            self.addWidget(button)
            self.buttons[speed_setting] = button

        self.button_group.idPressed.connect(self.speed_changed)
        self.sim_controller.sim_speed_reset.connect(self.on_sim_speed_reset)

    def speed_changed(self, speed_factor: int) -> None:
        setting = SimSpeedSetting.from_factor(speed_factor)
        self.sim_controller.set_simulation_speed(setting)

    def on_sim_speed_reset(self, speed_setting: SimSpeedSetting) -> None:
        self.buttons[speed_setting].setChecked(True)
Exemplo n.º 11
0
    def __init__(self, menus=None, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setAttribute(Qt.WA_StyledBackground, True)
        self.menus = menus if menus is not None else [
            'Devices', 'Control', 'Setpoints', 'PID', 'Plotting', 'Logging'
        ]
        self.menu_buttons = {
            key: QPushButton(parent=self, objectName=key)
            for key in self.menus
        }
        self.buttongroup = QButtonGroup()
        elchicon = QLabel()
        elchicon.setPixmap(QPixmap('Icons/ElchiHead.png'))

        vbox = QVBoxLayout()
        vbox.addWidget(elchicon, alignment=Qt.AlignHCenter)
        for key in self.menus:
            vbox.addWidget(self.menu_buttons[key])
            self.buttongroup.addButton(self.menu_buttons[key])
            self.menu_buttons[key].setCheckable(True)
            self.menu_buttons[key].setFixedSize(150, 100)

        vbox.addStretch()
        vbox.setContentsMargins(0, 0, 0, 0)
        vbox.setSpacing(0)
        self.setMinimumWidth(150)
        self.setLayout(vbox)
Exemplo n.º 12
0
 def __init__(self, parent=None):
     super().__init__(parent)
     self.setupUi(self)
     self.setStyleSheet(qss)
     self.config_widget = parent
     self.check_res = None
     self.btn_group = QButtonGroup(self)
     #
     self.res.setWordWrap(True)
     self.user.setFocus()
     self.host.textChanged.connect(self.host_slot)
     self.port.textChanged.connect(self.textChanged_slot)
     self.user.textChanged.connect(self.textChanged_slot)
     self.password.textChanged.connect(self.textChanged_slot)
     self.database.textChanged.connect(self.textChanged_slot)
     # 右键菜单
     self.ava_table.horizontalHeader().setVisible(False)
     self.ava_table.setContextMenuPolicy(
         Qt.CustomContextMenu)  ######允许右键产生子菜单
     self.ava_table.customContextMenuRequested.connect(
         self.generate_menu)  ####右键菜单
     # btn
     self.test_btn.clicked.connect(self.test_btn_slot)
     self.ok_btn.clicked.connect(self.ok_btn_slot)
     self.host.setText('localhost')
     self.port.setText('27017')
     self.url.setPlaceholderText(
         "mongodb://[user:password@]host:port/database")
     #
     self.thread_pool = QThreadPool()
     self.sig = DBObject()
     self.sig.dbsig.connect(self.db_connect_result)
Exemplo n.º 13
0
    def __init__(self, parent, db_mngr, *db_maps):
        """

        Args:
            parent (DataStoreForm): tree or graph view form
            db_mngr (SpineDBManager): the DB manager for interacting with the db
            db_maps (iter): DiffDatabaseMapping instances
        """
        super().__init__("Parameter Tag Toolbar", parent=parent)
        self.db_mngr = db_mngr
        self.db_maps = db_maps
        label = QLabel("Parameter tag")
        self.addWidget(label)
        self.tag_button_group = QButtonGroup(self)
        self.tag_button_group.setExclusive(False)
        self.actions = []
        self.db_map_ids = []
        empty = QWidget()
        empty.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.empty_action = self.addWidget(empty)
        button = QPushButton("Manage tags...")
        self.addWidget(button)
        # noinspection PyUnresolvedReferences
        # pylint: disable=unnecessary-lambda
        button.clicked.connect(lambda checked: self.manage_tags_action_triggered.emit(checked))
        self.setStyleSheet(PARAMETER_TAG_TOOLBAR_SS)
        self.setObjectName("ParameterTagToolbar")
        self.tag_actions_added.connect(self._add_db_map_tag_actions)
Exemplo n.º 14
0
    def makeDisplay(self):
        layout = QGridLayout(self)

        wordLabel = QLabel(self)
        self.wordLabel = wordLabel
        font = wordLabel.font()
        font.setPointSize(32)
        font.setBold(True)
        wordLabel.setFont(font)
        layout.addWidget(wordLabel, 0, 0, 1, 6)
        layout.setMargin(10)

        group = QButtonGroup(self)
        self.group = group

        self.buttons = []

        for i in range(4):
            scoreButton = QPushButton(self, text=str(i))
            scoreButton.setCheckable(True)
            if i == 0:
                scoreButton.setChecked(True)
            scoreButton.setMaximumWidth(40)
            group.addButton(scoreButton, i)
            layout.addWidget(scoreButton, 1, i)
            self.buttons.append(scoreButton)

        self.modelSimilarity = QLabel(self, text='')
        layout.addWidget(self.modelSimilarity, 2, 0)

        self.setLayout(layout)
Exemplo n.º 15
0
    def __init__(self,
                 *args,
                 count: int,
                 title: Optional[str] = "",
                 selected: Optional[List] = None,
                 default: Optional[bool] = False,
                 **kwargs):
        super(MultiCheckWidget, self).__init__(*args, **kwargs)

        # QButtonGroup is the logical container
        # it allows us to get list of checked boxes more easily
        self.check_group = QButtonGroup()
        self.check_group.setExclusive(False)  # more than one can be checked

        if title != "":
            self.setTitle(title)
            self.setFlat(False)
        else:
            self.setFlat(True)

        if selected is None:
            selected = list(range(count)) if default else []

        check_layout = QGridLayout()
        self.setLayout(check_layout)
        for i in range(count):
            check = QCheckBox("%d" % (i))
            # call signal/slot on self when one of the checkboxes is changed
            check.stateChanged.connect(lambda e: self.selectionChanged.emit())
            self.check_group.addButton(check, i)
            check_layout.addWidget(check, i // 8, i % 8)
        self.setSelected(selected)
Exemplo n.º 16
0
    def initPenSizeButtons(self):
        self.penSize = QWidget(self)
        self.penSizeLayout = QHBoxLayout()
        self.penSize.setLayout(self.penSizeLayout)
        # adjust pen size
        self.penSize1 = QPushButton(self.penSize)
        self.penSize1.setIcon(QIcon(":/resource/icon/pensize1.png"))
        self.penSize1.setObjectName('1')
        self.penSize1.setFixedSize(self.iconWidth, self.iconHeight)
        self.penSize1.setCheckable(True)

        self.penSize2 = QPushButton(self.penSize)
        self.penSize2.setIcon(QIcon(":/resource/icon/pensize2.png"))
        self.penSize2.setObjectName('2')
        self.penSize2.setFixedSize(self.iconWidth, self.iconHeight)
        self.penSize2.setCheckable(True)

        self.penSize3 = QPushButton(self.penSize)
        self.penSize3.setIcon(QIcon(":/resource/icon/pensize3.png"))
        self.penSize3.setObjectName('3')
        self.penSize3.setFixedSize(self.iconWidth, self.iconHeight)
        self.penSize3.setCheckable(True)

        self.sizeButtonGroup = QButtonGroup(self.penSize)
        self.sizeButtonGroup.addButton(self.penSize1)
        self.sizeButtonGroup.addButton(self.penSize2)
        self.sizeButtonGroup.addButton(self.penSize3)
        self.sizeButtonGroup.buttonClicked.connect(self.sizeButtonToggled)

        self.penSizeLayout.addWidget(self.penSize1)
        self.penSizeLayout.addWidget(self.penSize2)
        self.penSizeLayout.addWidget(self.penSize3)

        self.penSizeLayout.setSpacing(5)
        self.penSizeLayout.setContentsMargins(0, 0, 0, 0)
Exemplo n.º 17
0
    def __init__(self, parent):
        super().__init__(parent)
        self._scene = QGraphicsScene(self)
        self._graphics_view = QGraphicsView(self._scene, self)

        layout = QVBoxLayout(self)
        layout.addWidget(self._graphics_view)

        self._pixmap_item = SpriteGraphicsItem(self)
        self._scene.addItem(self._pixmap_item)

        self._image = QImage(SPRITE_SIZE, SPRITE_SIZE, QImage.Format_ARGB32)
        self.sprite = [[0] * SPRITE_SIZE] * SPRITE_SIZE

        button_layout = QHBoxLayout(self)
        layout.addLayout(button_layout)
        self._color_button_group = QButtonGroup(self)
        for color in COLORS:
            button = QPushButton(self)
            button.setCheckable(True)
            button.setText(f"{color}")
            self._color_button_group.addButton(button, color)
            button_layout.addWidget(button)

        self._selected_color = 0
        self._color_button_group.button(self._selected_color).setChecked(True)
        QObject.connect(self._color_button_group, SIGNAL("buttonClicked(int)"),
                        self._color_selected)

        self._update_scaling()
Exemplo n.º 18
0
 def initialize(self):
     self.setDateTimeEdits()
     self.dateButtonGroup = QButtonGroup()
     self.categoryButtonGroup = QButtonGroup()
     self.loadDateButtonGroup()
     self.loadCategoryButtonGroup()
     self.setDateGroupBoxStatus(self.RADIOBUTTON_ALL_DATES)
 def __init__(self, config: ConfigFactory, logger: LoggerFactory, title: str, languages: list):
     super(ChoiceLanguageDialog, self).__init__()
     self.config = config
     self.logger = logger
     self.setWindowTitle(title)
     self.setModal(True)
     self.setWindowFlag(Qt.WindowContextHelpButtonHint, False)
     self.languages = languages
     self.choice_language_button_group = QButtonGroup()
     self.choice_language_button_group.setExclusive(True)
     layout = QVBoxLayout()
     for language_id, language in enumerate(languages):
         # 显示语言提示
         language_item = QRadioButton(language.split(':')[0])
         self.choice_language_button_group.addButton(language_item)
         self.choice_language_button_group.setId(language_item, language_id)
         if language_id == 0:
             language_item.setChecked(True)
             self.language_id = 0
         layout.addWidget(language_item)
     self.choice_language_button_group.buttonClicked.connect(self.language_change)
     self.buttons = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel, Qt.Horizontal, self)
     self.buttons.accepted.connect(self.accept)
     self.buttons.rejected.connect(self.reject)
     layout.addWidget(self.buttons)
     self.setLayout(layout)
Exemplo n.º 20
0
    def initDrawButtons(self, flags):
        self.drawButtonGroup = QButtonGroup(self)

        # draw action buttons
        if flags & constant.RECT:
            self.rectButton = QPushButton(self)
            self.rectButton.setIcon(QIcon(":/resource/icon/rect.png"))
            self.rectButton.setFixedSize(self.iconWidth, self.iconHeight)
            self.rectButton.setCheckable(True)
            self.drawButtonGroup.addButton(self.rectButton)
            self.hlayout.addWidget(self.rectButton)
            self.button_list.append(self.rectButton)

        if flags & constant.ELLIPSE:
            self.ellipseButton = QPushButton(self)
            self.ellipseButton.setIcon(QIcon(":/resource/icon/ellipse.png"))
            self.ellipseButton.setFixedSize(self.iconWidth, self.iconHeight)
            self.ellipseButton.setCheckable(True)
            self.drawButtonGroup.addButton(self.ellipseButton)
            self.hlayout.addWidget(self.ellipseButton)
            self.button_list.append(self.ellipseButton)

        if flags & constant.ARROW:
            self.arrowButton = QPushButton(self)
            self.arrowButton.setIcon(QIcon(":/resource/icon/arrow.png"))
            self.arrowButton.setFixedSize(self.iconWidth, self.iconHeight)
            self.arrowButton.setCheckable(True)
            self.drawButtonGroup.addButton(self.arrowButton)
            self.hlayout.addWidget(self.arrowButton)
            self.button_list.append(self.arrowButton)

        if flags & constant.LINE:
            self.lineButton = QPushButton(self)
            self.lineButton.setIcon(QIcon(":/resource/icon/line.png"))
            self.lineButton.setFixedSize(self.iconWidth, self.iconHeight)
            self.lineButton.setCheckable(True)
            self.drawButtonGroup.addButton(self.lineButton)
            self.hlayout.addWidget(self.lineButton)
            self.button_list.append(self.lineButton)

        if flags & constant.FREEPEN:
            self.freePenButton = QPushButton(self)
            self.freePenButton.setIcon(QIcon(":/resource/icon/pen.png"))
            self.freePenButton.setFixedSize(self.iconWidth, self.iconHeight)
            self.freePenButton.setCheckable(True)
            self.drawButtonGroup.addButton(self.freePenButton)
            self.hlayout.addWidget(self.freePenButton)
            self.button_list.append(self.freePenButton)

        if flags & constant.TEXT:
            self.textButton = QPushButton(self)
            self.textButton.setIcon(QIcon(":/resource/icon/text.png"))
            self.textButton.setFixedSize(self.iconWidth, self.iconHeight)
            self.textButton.setCheckable(True)
            self.drawButtonGroup.addButton(self.textButton)
            self.hlayout.addWidget(self.textButton)
            self.button_list.append(self.textButton)

        self.drawButtonGroup.buttonClicked.connect(self.buttonToggled)
Exemplo n.º 21
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.labels = {
            key: QLabel(text=key, objectName='Header')
            for key in ['Controller', 'Sensor']
        }
        self.device_menus = {key: QComboBox() for key in self.labels}
        self.port_menus = {key: QComboBox() for key in self.labels}
        self.connect_buttons = {
            key: QPushButton(text='Connect', objectName=key)
            for key in self.labels
        }

        self.buttongroup = QButtonGroup()
        self.buttongroup.setExclusive(False)
        self.buttongroup.buttonToggled.connect(self.connect_device)

        self.unitbuttons = {
            key: QRadioButton(text=key)
            for key in ['Temperature', 'Voltage']
        }
        self.refresh_button = QPushButton(text='Refresh Serial',
                                          objectName='Refresh')

        vbox = QVBoxLayout()
        vbox.setSpacing(10)
        vbox.setContentsMargins(10, 10, 10, 10)

        vbox.addWidget(QLabel(text='Process Variable', objectName='Header'))
        for key, button in self.unitbuttons.items():
            vbox.addWidget(button)
            button.toggled.connect(
                functools.partial(self.set_measurement_unit, unit=key))
        vbox.addSpacing(20)

        for key in self.labels:
            self.buttongroup.addButton(self.connect_buttons[key])
            self.connect_buttons[key].setCheckable(True)
            vbox.addWidget(self.labels[key])
            vbox.addWidget(self.device_menus[key])
            vbox.addWidget(self.port_menus[key])
            vbox.addWidget(self.connect_buttons[key])
            vbox.addSpacing(20)

        vbox.addWidget(self.refresh_button)
        self.refresh_button.clicked.connect(
            lambda: pubsub.pub.sendMessage('gui.request.ports'))
        vbox.addStretch()
        self.setLayout(vbox)

        pubsub.pub.subscribe(listener=self.update_ports,
                             topicName='engine.answer.ports')
        pubsub.pub.subscribe(listener=self.update_devices,
                             topicName='engine.answer.devices')

        pubsub.pub.sendMessage('gui.request.ports')
Exemplo n.º 22
0
    def initPenColorButtons(self):
        self.colorSet = QWidget(self)
        self.colorLayout = QHBoxLayout()
        self.colorLayout.setSpacing(5)
        self.colorLayout.setContentsMargins(5, 0, 5, 0)
        self.colorSet.setLayout(self.colorLayout)

        self.presentColor = QPushButton(self.colorSet)
        self.presentColor.setFixedSize(self.iconWidth, self.iconHeight)
        self.presentColor.setEnabled(False)

        # adjust pen color

        self.colorPick = QWidget(self.colorSet)
        self.colorGrid = QGridLayout()
        self.colorGrid.setSpacing(0)
        self.colorGrid.setContentsMargins(5, 0, 5, 0)
        self.colorPick.setLayout(self.colorGrid)

        self.colorList = [('white'       ,       '#ffffff'),
                          ('red'         ,       '#ff0000'),
                          ('green'       ,       '#00ff00'),
                          ('blue'        ,       '#0000ff'),
                          ('cyan'        ,       '#00ffff'),
                          ('magenta'     ,       '#ff00ff'),
                          ('yellow'      ,       '#ffff00'),
                          ('gray'        ,       '#a0a0a4'),

                          ('black'       ,       '#000000'),
                          ('darkRed'     ,       '#800000'),
                          ('darkGreen'   ,       '#008000'),
                          ('darkBlue'    ,       '#000080'),
                          ('darkCyan'    ,       '#008080'),
                          ('darkMagenta' ,       '#800080'),
                          ('darkYellow'  ,       '#808000'),
                          ('darkGray'    ,       '#808080')]

        self.generateButtons()

        self.colorButtonGroup = QButtonGroup(self)
        for button in self.colorButtons:
            self.colorButtonGroup.addButton(button)
        self.colorButtonGroup.buttonClicked.connect(self.colorButtonToggled)

        # set the layout
        tmp = 0
        for x in range(0, 2):
            for y in range(0, int(len(self.colorList) / 2)):
                self.colorGrid.addWidget(self.colorButtons[tmp], x, y)
                tmp += 1

        self.colorGrid.setSpacing(0)
        self.colorGrid.setContentsMargins(0, 0, 0, 0)

        self.colorLayout.addWidget(self.presentColor)
        self.colorLayout.addWidget(self.colorPick)
Exemplo n.º 23
0
 def __init__(self, boxes, checks, parent=None):
     QHBoxLayout.__init__(self)
     self.setSpacing(0)
     self.group = QButtonGroup()
     self.group.setExclusive(False)
     for i, (box, check) in enumerate(zip(boxes, checks)):
         cbx = QCheckBox(box)
         cbx.setChecked(eval(check))
         self.addWidget(cbx)
         self.group.addButton(cbx, i)
Exemplo n.º 24
0
 def __init__(self, buttons, index, parent=None):
     QVBoxLayout.__init__(self)
     self.setSpacing(0)
     self.group = QButtonGroup()
     for i, button in enumerate(buttons):
         btn = QRadioButton(button)
         if i == index:
             btn.setChecked(True)
         self.addWidget(btn)
         self.group.addButton(btn, i)
Exemplo n.º 25
0
class basicWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.label = QLabel('Which city do you live in?')
        self.rbtn1 = QRadioButton('New York')
        self.rbtn2 = QRadioButton('Houston')
        self.label2 = QLabel("")

        self.label3 = QLabel('Which state do you live in?')
        self.rbtn3 = QRadioButton('New York')
        self.rbtn4 = QRadioButton('Texas')
        self.label4 = QLabel("")

        self.btngroup1 = QButtonGroup()
        self.btngroup2 = QButtonGroup()

        self.btngroup1.addButton(self.rbtn1)
        self.btngroup1.addButton(self.rbtn2)
        self.btngroup2.addButton(self.rbtn3)
        self.btngroup2.addButton(self.rbtn4)

        self.rbtn1.toggled.connect(self.onClicked)
        self.rbtn2.toggled.connect(self.onClicked)

        self.rbtn3.toggled.connect(self.onClickedState)
        self.rbtn4.toggled.connect(self.onClickedState)

        layout = QVBoxLayout()
        layout.addWidget(self.label)
        layout.addWidget(self.rbtn1)
        layout.addWidget(self.rbtn2)
        layout.addWidget(self.label2)

        layout.addWidget(self.label3)
        layout.addWidget(self.rbtn3)
        layout.addWidget(self.rbtn4)
        layout.addWidget(self.label4)

        self.setGeometry(200, 200, 300, 150)

        self.setLayout(layout)
        self.setWindowTitle('Radio Button Example')

        self.show()

    def onClicked(self):
        radioBtn = self.sender()
        if radioBtn.isChecked():
            self.label2.setText("You live in " + radioBtn.text())

    def onClickedState(self):
        radioBtn = self.sender()
        if radioBtn.isChecked():
            self.label4.setText("You live in " + radioBtn.text())
Exemplo n.º 26
0
 def __init__(self):
     super(MainWindow, self).__init__()
     self.ui = Ui_QuestionnaireWidget()
     self.ui.setupUi(self)
     scale_bg = QButtonGroup(self)
     scale_bg.addButton(self.ui.awfulCb)
     scale_bg.addButton(self.ui.soSoCb)
     scale_bg.addButton(self.ui.normalCb)
     scale_bg.addButton(self.ui.excellentCb)
     # устанавливаем метод отработки варианта выбора
     scale_bg.buttonClicked.connect(self.checkboxClicked)
Exemplo n.º 27
0
    def displayWidgets(self):
        # create label and button widgets
        title = QLabel("Вечерний опрос")
        title.setFont(QFont('Arial', 17))
        question = QLabel("Насколько плодотворно прошел Ваш день?")
        question.setAlignment(Qt.AlignHCenter)
        # согдание горизонтального layout-а
        title_h_box = QHBoxLayout()
        title_h_box.addStretch()
        title_h_box.addWidget(title)
        title_h_box.addStretch()
        # Варианты выбора
        ratings = ["Ужасно", "Ну, такое", "Нормально", "Отлично"]

        ratings_h_box = QHBoxLayout()
        # Устанавливаем расстояние между виджетами в горизонтальном layout-е
        ratings_h_box.setSpacing(80)

        ratings_h_box.addStretch()
        for rating in ratings:
            rate_label = QLabel(rating, self)
            ratings_h_box.addWidget(rate_label)
        ratings_h_box.addStretch()

        cb_h_box = QHBoxLayout()
        # расстояние между виджетами в горизонтальном layout-е
        cb_h_box.setSpacing(100)

        # Создаем контейнер для групировки QCheckBox
        scale_bg = QButtonGroup(self)

        cb_h_box.addStretch()
        for cb in range(len(ratings)):
            scale_cb = QCheckBox(str(cb), self)
            cb_h_box.addWidget(scale_cb)
            scale_bg.addButton(scale_cb)
        cb_h_box.addStretch()

        # устанавливаем функцию отработки варианта выбора
        scale_bg.buttonClicked.connect(self.checkboxClicked)
        close_button = QPushButton("Закрыть", self)
        close_button.clicked.connect(self.close)
        # Компануем вертикальный layout последовательно
        # добавляя виджеты and элементы h_box layout
        v_box = QVBoxLayout()
        v_box.addLayout(title_h_box)
        v_box.addWidget(question)
        v_box.addStretch(1)
        v_box.addLayout(ratings_h_box)
        v_box.addLayout(cb_h_box)
        v_box.addStretch(2)
        v_box.addWidget(self.label)
        v_box.addWidget(close_button)
        self.setLayout(v_box)
Exemplo n.º 28
0
 def __init__(self):
     super(LoginWidget, self).__init__()
     self.setupUi(self)
     self.loginButton.clicked.connect(self.login)
     self.quitButton.clicked.connect(self.quit)
     self.login_type = LoginType.STUDENT
     self.radio_group = QButtonGroup(self)
     self.radio_group.addButton(self.studentRadio, 0)
     self.radio_group.addButton(self.teacherRadio, 1)
     self.studentRadio.setChecked(True)
     self.radio_group.buttonToggled.connect(self.toggle_login_type)
     self.pwdInput.returnPressed.connect(self.login)
Exemplo n.º 29
0
    def _init_widgets(self):
        layout = QGridLayout()
        self.main_layout.addLayout(layout)
        self._status_label = QLabel(self)

        row = 0
        layout.addWidget(QLabel('Break on:', self), row, 0, Qt.AlignRight)
        self._type_radio_group = QButtonGroup(self)
        self._type_radio_group.addButton(QRadioButton('Execute', self),
                                         BreakpointType.Execute.value)
        self._type_radio_group.addButton(QRadioButton('Write', self),
                                         BreakpointType.Write.value)
        self._type_radio_group.addButton(QRadioButton('Read', self),
                                         BreakpointType.Read.value)
        for b in self._type_radio_group.buttons():
            layout.addWidget(b, row, 1)
            row += 1

        self._type_radio_group.button(
            self.breakpoint.type.value).setChecked(True)

        layout.addWidget(QLabel('Address:', self), row, 0, Qt.AlignRight)
        self._address_box = QAddressInput(self._on_address_changed,
                                          self.workspace,
                                          parent=self,
                                          default=f'{self.breakpoint.addr:#x}')
        layout.addWidget(self._address_box, row, 1)
        row += 1

        layout.addWidget(QLabel('Size:', self), row, 0, Qt.AlignRight)
        self._size_box = QLineEdit(self)
        self._size_box.setText(f'{self.breakpoint.size:#x}')
        self._size_box.textChanged.connect(self._on_size_changed)
        layout.addWidget(self._size_box, row, 1)
        row += 1

        layout.addWidget(QLabel('Comment:', self), row, 0, Qt.AlignRight)
        self._comment_box = QLineEdit(self)
        self._comment_box.setText(self.breakpoint.comment)
        layout.addWidget(self._comment_box, row, 1)
        row += 1

        self.main_layout.addWidget(self._status_label)

        buttons = QDialogButtonBox(parent=self)
        buttons.setStandardButtons(QDialogButtonBox.StandardButton.Cancel
                                   | QDialogButtonBox.StandardButton.Ok)
        buttons.accepted.connect(self._on_ok_clicked)
        buttons.rejected.connect(self.close)
        self._ok_button = buttons.button(QDialogButtonBox.Ok)
        self._ok_button.setEnabled(False)
        self.main_layout.addWidget(buttons)
Exemplo n.º 30
0
class ElchPlotMenu(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        controls = ['Start', 'Clear', 'Export']
        self.buttons = {
            key: QPushButton(parent=self, text=key, objectName=key)
            for key in controls
        }
        self.buttons['Start'].setCheckable(True)
        self.checks = {
            key: QCheckBox(parent=self, text=key, objectName=key)
            for key in ['Sensor PV', 'Controller PV', 'Setpoint', 'Power']
        }
        self.check_group = QButtonGroup()
        self.check_group.setExclusive(False)

        vbox = QVBoxLayout()
        vbox.addWidget(QLabel(text='Plotting', objectName='Header'))
        for key in controls:
            vbox.addWidget(self.buttons[key])
            self.buttons[key].clicked.connect({
                'Start':
                functools.partial(self.start_stop_plotting),
                'Clear':
                self.clear_pplot,
                'Export':
                self.export_data
            }[key])
        vbox.addSpacing(20)
        vbox.addWidget(QLabel(text='Data sources', objectName='Header'))
        for key, button in self.checks.items():
            button.setChecked(True)
            self.check_group.addButton(button)
            vbox.addWidget(button)
        vbox.addStretch()
        vbox.setSpacing(10)
        vbox.setContentsMargins(10, 10, 10, 10)
        self.setLayout(vbox)

    def start_stop_plotting(self):
        pubsub.pub.sendMessage('gui.plot.start' if self.buttons['Start'].
                               isChecked() else 'gui.plot.stop')

    def clear_pplot(self):
        pubsub.pub.sendMessage('gui.plot.clear')
        if self.buttons['Start'].isChecked():
            self.buttons['Start'].click()

    def export_data(self):
        if (file_path := QFileDialog.getSaveFileName(
                self, 'Save as...', 'Logs/Log.csv', 'CSV (*.csv)')[0]) != '':
            pubsub.pub.sendMessage('gui.plot.export', filepath=file_path)