Exemplo n.º 1
0
 def __action(self,
              name: Union[str, QAction],
              slot: Optional[Callable[..., None]] = None,
              enable: Optional[_Enable] = None,
              *,
              cast_to: Type[_N]) -> _N:
     """New action or menu."""
     is_menu = cast_to is QMenu
     if isinstance(name, QAction):
         menu: Optional[QMenu] = None
         action = name
     elif is_menu:
         menu = QMenu(name, self)
         action = menu.menuAction()
     else:
         menu = None
         action = QAction(name, self)
     if slot is not None:
         action.triggered.connect(slot)
     if enable is not None:
         for target in self.context[enable]:
             if isinstance(target, QMenu):
                 if is_menu:
                     target.addMenu(menu)
                 else:
                     target.addAction(action)
             elif isinstance(target, list):
                 target.append(action)
             else:
                 raise ValueError("not a list or menu")
     if is_menu:
         return cast(QMenu, menu)
     else:
         return action
Exemplo n.º 2
0
 def __action(self,
              name: Union[str, QAction],
              slot: Optional[Callable[..., None]] = None,
              enable: Optional[_Enable] = None,
              *,
              is_menu: bool = False) -> Union[QAction, QMenu]:
     """New action or menu."""
     if type(name) is QAction:
         menu = None
         action: QAction = name
     elif is_menu:
         menu = QMenu(name, self)
         action = menu.menuAction()
     else:
         menu = None
         action = QAction(name, self)
     if slot is not None:
         action.triggered.connect(slot)
     if enable is not None:
         for target in self.context[enable]:
             if type(target) is QMenu:
                 if is_menu:
                     target.addMenu(menu)
                 else:
                     target.addAction(action)
             elif type(target) is list:
                 target.append(action)
             else:
                 raise ValueError("not a list or menu")
     if is_menu:
         return menu
     else:
         return action
Exemplo n.º 3
0
    def add_toggle_view_action_to_menu(self, toggle_view_action: QAction,
                                       group: str, group_icon: QIcon) -> QAction:
        '''
        Adds a toggle view action to the the internal view menu. You can either
        manage the insertion of the toggle view actions in your application or
        you can add the actions to the internal view menu and then simply
        insert the menu object into your.

        Parameters
        ----------
        toggle_view_action : QAction
        group : str
        group_icon : QIcon

        Returns
        -------
        value : QAction
        '''
        order = self._mgr.menu_insertion_order
        alphabetically_sorted = (
            InsertionOrder.by_spelling == order
        )

        if not group:
            self._mgr.add_action_to_menu(toggle_view_action,
                                         self._mgr.view_menu,
                                         alphabetically_sorted)
            return toggle_view_action

        try:
            group_menu = self._mgr.view_menu_groups[group]
        except KeyError:
            group_menu = QMenu(group, self)
            group_menu.setIcon(group_icon)
            self._mgr.add_action_to_menu(
                group_menu.menuAction(), self._mgr.view_menu,
                alphabetically_sorted)
            self._mgr.view_menu_groups[group] = group_menu

        self._mgr.add_action_to_menu(toggle_view_action, group_menu,
                                     alphabetically_sorted)
        return group_menu.menuAction()
Exemplo n.º 4
0
class UiLinelistsWindow(object):

    # this code was taken as-is from the Designer.
    # Cleaning it up sounds like a lower priority
    # task for now.
    def setupUi(self, MainWindow, title):
        MainWindow.setWindowTitle(title)
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(500, 500)
        MainWindow.setMinimumSize(QSize(300, 350))
        self.centralWidget = QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")
        self.gridLayout = QGridLayout(self.centralWidget)
        self.gridLayout.setContentsMargins(11, 11, 11, 11)
        self.gridLayout.setSpacing(6)
        self.gridLayout.setObjectName("gridLayout")
        self.horizontalLayout_5 = QHBoxLayout()
        self.horizontalLayout_5.setContentsMargins(11, 11, 11, 11)
        self.horizontalLayout_5.setSpacing(6)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.lines_selected_label = QLabel(self.centralWidget)
        self.lines_selected_label.setObjectName("lines_selected_label")
        self.horizontalLayout_5.addWidget(self.lines_selected_label)
        self.label = QLabel(self.centralWidget)
        self.label.setObjectName("label")
        self.horizontalLayout_5.addWidget(self.label)
        self.draw_button = QPushButton(self.centralWidget)
        self.draw_button.setObjectName("draw_button")
        self.horizontalLayout_5.addWidget(self.draw_button)
        self.erase_button = QPushButton(self.centralWidget)
        self.erase_button.setObjectName("erase_button")
        self.horizontalLayout_5.addWidget(self.erase_button)
        self.dismiss_button = QPushButton(self.centralWidget)
        self.dismiss_button.setObjectName("dismiss_button")
        self.horizontalLayout_5.addWidget(self.dismiss_button)
        self.gridLayout.addLayout(self.horizontalLayout_5, 4, 0, 1, 1)
        self.verticalLayout_11 = QVBoxLayout()
        self.verticalLayout_11.setContentsMargins(11, 11, 11, 11)
        self.verticalLayout_11.setSpacing(6)
        self.verticalLayout_11.setObjectName("verticalLayout_11")
        self.tabWidget = QTabWidget(self.centralWidget)
        self.tabWidget.setObjectName("tabWidget")
        self.verticalLayout_11.addWidget(self.tabWidget)
        self.gridLayout.addLayout(self.verticalLayout_11, 0, 0, 1, 1)
        self.horizontalLayout_7 = QHBoxLayout()
        self.horizontalLayout_7.setContentsMargins(11, 11, 11, 11)
        self.horizontalLayout_7.setSpacing(6)
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
        self.add_set_button = QPushButton(self.centralWidget)
        self.add_set_button.setObjectName("add_set_button")
        self.horizontalLayout_7.addWidget(self.add_set_button)
        spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                 QSizePolicy.Minimum)
        self.horizontalLayout_7.addItem(spacerItem)
        self.gridLayout.addLayout(self.horizontalLayout_7, 2, 0, 2, 1)
        MainWindow.setCentralWidget(self.centralWidget)
        self.menuBar = QMenuBar(MainWindow)
        self.menuBar.setGeometry(QRect(0, 0, 767, 22))
        self.menuBar.setObjectName("menuBar")
        self.menuFile = QMenu(self.menuBar)
        self.menuFile.setObjectName("menuFile")
        MainWindow.setMenuBar(self.menuBar)
        self.mainToolBar = QToolBar(MainWindow)
        self.mainToolBar.setMovable(False)
        self.mainToolBar.setFloatable(False)
        self.mainToolBar.setObjectName("mainToolBar")
        MainWindow.addToolBar(Qt.TopToolBarArea, self.mainToolBar)
        self.statusBar = QStatusBar(MainWindow)
        self.statusBar.setObjectName("statusBar")
        MainWindow.setStatusBar(self.statusBar)
        self.actionOpen = QAction(MainWindow)
        icon = QIcon()
        icon.addPixmap(QPixmap(":/img/Open Folder-48.png"), QIcon.Normal,
                       QIcon.Off)
        self.actionOpen.setIcon(icon)
        self.actionOpen.setObjectName("actionOpen")
        self.actionExit = QAction(MainWindow)
        self.actionExit.setObjectName("actionExit")
        self.actionRemove = QAction(MainWindow)
        self.actionRemove.setObjectName("actionRemove")
        self.actionChange_Color = QAction(MainWindow)
        self.actionChange_Color.setObjectName("actionChange_Color")
        self.menuFile.addAction(self.actionOpen)
        self.menuFile.addSeparator()
        self.menuFile.addAction(self.actionExit)
        self.menuBar.addAction(self.menuFile.menuAction())
        self.mainToolBar.addAction(self.actionOpen)
        self.mainToolBar.addSeparator()

        self.retranslateUi(MainWindow)
        QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QCoreApplication.translate
        self.lines_selected_label.setText(_translate("MainWindow", "0"))
        self.label.setText(_translate("MainWindow", "lines selected"))
        self.draw_button.setText(_translate("MainWindow", "Draw"))
        self.erase_button.setText(_translate("MainWindow", "Erase"))
        self.dismiss_button.setText(_translate("MainWindow", "Dismiss"))
        self.add_set_button.setText(_translate("MainWindow", "Add set"))
        self.menuFile.setTitle(_translate("MainWindow", "File"))
        self.actionOpen.setText(_translate("MainWindow", "Open"))
        self.actionExit.setText(_translate("MainWindow", "Exit"))
        self.actionRemove.setText(_translate("MainWindow", "Remove"))
        self.actionRemove.setToolTip(
            _translate("MainWindow", "Removes the selected layer"))
        self.actionChange_Color.setText(
            _translate("MainWindow", "Change Color"))
        self.actionChange_Color.setToolTip(
            _translate("MainWindow", "Change the line color selected layer"))
Exemplo n.º 5
0
 def add_menu(self, menu: QtWidgets.QMenu):
     return self.addAction(menu.menuAction())