示例#1
0
class TableWidget(QTableWidget):
    def __init__(self, parent: Optional[QWidget] = None) -> None:
        super().__init__(parent)
        self._context_menu = QMenu(self)
        self._copy_table_action = self._context_menu.addAction('Copy table to clipboard',
                                                               self._copyTableActionTriggered)
        self._copy_row_action = self._context_menu.addAction('Copy row to clipboard',
                                                             self._copyRowActionTriggered)
        self.addActions((self._copy_table_action, self._copy_row_action))

    def contextMenuEvent(self, event: QEvent) -> None:
        self._copy_table_action.setEnabled(bool(self.rowCount()))
        self._copy_row_action.setEnabled(bool(self.selectedItems()))
        self._context_menu.exec_(self.viewport().mapToGlobal(event.pos()))

    def _copyRowsToClipboard(self, rows: Iterable[int]) -> None:
        if not rows or not self.columnCount():
            return

        rows_text = ['\t'.join(self.model().headerData(column, Qt.Horizontal) for column in range(self.columnCount()))]

        for row in rows:
            rows_text.append('\t'.join(self.item(row, column).text() for column in range(self.columnCount())))

        QApplication.clipboard().setText('\n'.join(rows_text))

    def _copyTableActionTriggered(self) -> None:
        self._copyRowsToClipboard(tuple(range(self.rowCount())))

    def _copyRowActionTriggered(self) -> None:
        selected_rows = sorted({self.row(selected_item) for selected_item in self.selectedItems()})
        self._copyRowsToClipboard(selected_rows)
示例#2
0
    def _setup_difficulties_menu(self, game: RandovaniaGame,
                                 menu: QtWidgets.QMenu):
        from randovania.game_description import default_database
        game = default_database.game_description_for(game)
        tricks_in_use = used_tricks(game)

        menu.clear()
        for trick in sorted(game.resource_database.trick,
                            key=lambda _trick: _trick.long_name):
            if trick not in tricks_in_use:
                continue

            trick_menu = QtWidgets.QMenu(self)
            trick_menu.setTitle(_t(trick.long_name))
            menu.addAction(trick_menu.menuAction())

            used_difficulties = difficulties_for_trick(game, trick)
            for trick_level in enum_lib.iterate_enum(LayoutTrickLevel):
                if trick_level in used_difficulties:
                    difficulty_action = QtGui.QAction(self)
                    difficulty_action.setText(trick_level.long_name)
                    trick_menu.addAction(difficulty_action)
                    difficulty_action.triggered.connect(
                        functools.partial(self._open_trick_details_popup, game,
                                          trick, trick_level))
示例#3
0
    def createTrayIcon(self):
        self.showProgramsAction = QAction("Programs", self)
        self.showProgramsAction.triggered.connect(self.showProgramsPage)
        self.showNewProgramAction = QAction("New Program", self)
        self.showNewProgramAction.triggered.connect(self.newProgram)
        self.showSetProgramAction = QAction("Logs", self)
        self.showSetProgramAction.triggered.connect(self.showLogsPage)
        self.showDocumentationAction = QAction("Documentation", self)
        self.showDocumentationAction.triggered.connect(self.showDocumentation)
        self.quitAction = QAction("Quit", self)
        self.quitAction.triggered.connect(self.quit)

        self.trayIconMenu = QMenu(self)
        self.trayIconMenu.addAction(self.showProgramsAction)
        self.trayIconMenu.addAction(self.showSetProgramAction)
        self.trayIconMenu.addAction(self.showNewProgramAction)
        self.trayIconMenu.addAction(self.showDocumentationAction)
        self.trayIconMenu.addSeparator()
        self.trayIconMenu.addAction(self.quitAction)
        self.trayIcon = QSystemTrayIcon(self)

        self.trayIcon.setContextMenu(self.trayIconMenu)
        self.trayIcon.activated.connect(self.iconActivated)
        self.trayIcon.setIcon(QIcon(":/images/yammi-banana-icon.png"))
        self.trayIcon.show()
示例#4
0
    def outputContextMenu(self, listview: QListView, pos: QPoint):
        current_model = listview.model()
        menu = QMenu()
        edit_action = QAction(
            "Edit clicked" if len(listview.selectedIndexes()) > 1 else "Edit",
            menu)
        edit_action.triggered.connect(self.editCurrentTarget)
        menu.addAction(edit_action)

        delete_action = QAction("Remove", menu)
        delete_action.triggered.connect(lambda: current_model.__delitem__(
            [i.row() for i in listview.selectedIndexes()]))
        menu.addAction(delete_action)

        selected_istemp = current_model[
            listview.currentIndex().row()].temporary
        mark_temp_action = QAction("Mark temp", menu)
        mark_temp_action.setCheckable(True)
        mark_temp_action.setChecked(selected_istemp)
        mark_temp_action.triggered.connect(lambda: [
            current_model[i.row()].switch_temporary(not selected_istemp)
            for i in listview.selectedIndexes()
        ])
        menu.addAction(mark_temp_action)

        self.addTargetActions(menu)
        menu.exec_(listview.mapToGlobal(pos))
示例#5
0
 def __init__(self, selection_handler, *args, **kwargs):
     """selection_handler: a function in the parent window to pass selected indices to"""
     self.selection_handler = selection_handler
     super().__init__(*args, **kwargs)
     size_policy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
     size_policy.setHorizontalStretch(1)
     size_policy.setVerticalStretch(0)
     size_policy.setHeightForWidth(self.sizePolicy().hasHeightForWidth())
     self.setSizePolicy(size_policy)
     self.setEditTriggers(QAbstractItemView.NoEditTriggers)
     self.setSelectionMode(QAbstractItemView.ExtendedSelection)
     self.setObjectName("treeView")
     self.setIndentation(10)
     self.setIconSize(QSize(16, 24))
     self.setContextMenuPolicy(Qt.CustomContextMenu)
     self.tree_menu = QMenu()
     self.context_action_expand = QAction('Expand all', self.tree_menu)
     self.tree_menu.addAction(self.context_action_expand)
     self.context_action_scan = QAction('Scan wiki for selected objects',
                                        self.tree_menu)
     self.tree_menu.addAction(self.context_action_scan)
     self.context_action_upload_page = QAction(
         'Upload templates for selected objects', self.tree_menu)
     self.tree_menu.addAction(self.context_action_upload_page)
     self.context_action_upload_tile = QAction(
         'Upload tiles for selected objects', self.tree_menu)
     self.tree_menu.addAction(self.context_action_upload_tile)
     self.context_action_upload_extra = QAction(
         'Upload extra image(s) for selected objects', self.tree_menu)
     self.tree_menu.addAction(self.context_action_upload_extra)
     self.context_action_diff = QAction('Diff template against wiki',
                                        self.tree_menu)
     self.tree_menu.addAction(self.context_action_diff)
     self.customContextMenuRequested.connect(self.on_context_menu)
 def create_upload_nintendont_action(self, menu: QtWidgets.QMenu):
     self.upload_nintendont_action = QtGui.QAction(menu)
     self.upload_nintendont_action.setText(
         "Upload Nintendont to Homebrew Channel")
     self.upload_nintendont_action.triggered.connect(
         self.on_upload_nintendont_action)
     menu.addAction(self.upload_nintendont_action)
示例#7
0
 def __init__(self, parent: Optional[QWidget] = None) -> None:
     super().__init__(parent)
     self._context_menu = QMenu(self)
     self._copy_table_action = self._context_menu.addAction('Copy table to clipboard',
                                                            self._copyTableActionTriggered)
     self._copy_row_action = self._context_menu.addAction('Copy row to clipboard',
                                                          self._copyRowActionTriggered)
     self.addActions((self._copy_table_action, self._copy_row_action))
示例#8
0
    def inputContextMenu(self, pos: QPoint):
        menu = QMenu()
        preview_action = QAction("Preview", menu)
        preview_action.triggered.connect(
            lambda: self.previewInput(self.list_input_files.currentItem()))
        menu.addAction(preview_action)

        self.addTargetActions(menu)
        action = menu.exec_(self.list_input_files.mapToGlobal(pos))
示例#9
0
    def __init__(self, parent=None):
        MdiWidget.__init__(self, parent)
        self.setupUi(self)

        self.current_index = None  # this is used in onOperationContextMenu() to track item for menu

        # Set icons
        self.NewOperationBtn.setIcon(load_icon("new.png"))
        self.CopyOperationBtn.setIcon(load_icon("copy.png"))
        self.DeleteOperationBtn.setIcon(load_icon("delete.png"))

        # Operations view context menu
        self.contextMenu = QMenu(self.OperationsTableView)
        self.actionReconcile = QAction(load_icon("reconcile.png"),
                                       self.tr("Reconcile"), self)
        self.actionCopy = QAction(load_icon("copy.png"), self.tr("Copy"), self)
        self.actionDelete = QAction(load_icon("delete.png"), self.tr("Delete"),
                                    self)
        self.contextMenu.addAction(self.actionReconcile)
        self.contextMenu.addSeparator()
        self.contextMenu.addAction(self.actionCopy)
        self.contextMenu.addAction(self.actionDelete)

        # Customize UI configuration
        self.balances_model = BalancesModel(self.BalancesTableView)
        self.BalancesTableView.setModel(self.balances_model)
        self.balances_model.configureView()

        self.operations_model = OperationsModel(self.OperationsTableView)
        self.OperationsTableView.setModel(self.operations_model)
        self.operations_model.configureView()
        self.OperationsTableView.setContextMenuPolicy(Qt.CustomContextMenu)

        self.connect_signals_and_slots()

        self.NewOperationMenu = QMenu()
        for i in range(self.OperationsTabs.count()):
            if hasattr(self.OperationsTabs.widget(i), "isCustom"):
                self.OperationsTabs.widget(i).dbUpdated.connect(self.dbUpdated)
                self.OperationsTabs.widget(i).dbUpdated.connect(
                    self.operations_model.refresh)
                self.NewOperationMenu.addAction(
                    self.OperationsTabs.widget(i).name,
                    partial(self.createOperation, i))
        self.NewOperationBtn.setMenu(self.NewOperationMenu)

        # Setup balance and holdings parameters
        current_time = QDateTime.currentDateTime()
        current_time.setTimeSpec(
            Qt.UTC)  # We use UTC everywhere so need to force TZ info
        self.BalanceDate.setDateTime(current_time)
        self.BalancesCurrencyCombo.setIndex(
            JalSettings().getValue('BaseCurrency'))

        self.OperationsTabs.setCurrentIndex(LedgerTransaction.NA)
        self.OperationsTableView.selectRow(0)
        self.DateRange.setCurrentIndex(0)
示例#10
0
    def createContextMenu(self):
        self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.customContextMenuRequested.connect(self.showContextMenu)

        self.contextMenu = QMenu(self)
        self.actionSWitch = self.contextMenu.addAction(u'Switch')
        self.actionRefresh = self.contextMenu.addAction(u'Refresh')

        self.actionSWitch.triggered.connect(self.switchSide)
        self.actionRefresh.triggered.connect(self.reNewMenu)
示例#11
0
    def createTrayIcon(self):
        self.trayIconMenu = QMenu(self)
        self.trayIconMenu.addAction(self.minimizeAction)
        self.trayIconMenu.addAction(self.maximizeAction)
        self.trayIconMenu.addAction(self.restoreAction)
        self.trayIconMenu.addSeparator()
        self.trayIconMenu.addAction(self.quitAction)

        self.trayIcon = QSystemTrayIcon(self)
        self.trayIcon.setContextMenu(self.trayIconMenu)
示例#12
0
    def __init__(self, parent):
        QPushButton.__init__(self, parent)
        self.p_account_id = 0

        self.Menu = QMenu(self)
        self.Menu.addAction(self.tr("Choose account"), self.ChooseAccount)
        self.Menu.addAction(self.tr("Any account"), self.ClearAccount)
        self.setMenu(self.Menu)

        self.dialog = AccountListDialog()
        self.setText(self.dialog.SelectedName)
示例#13
0
    def __init__(self, parent=None):
        super(Window, self).__init__(parent)

        self.iconGroupBox = QGroupBox()
        self.iconLabel = QLabel()
        self.iconComboBox = QComboBox()
        self.showIconCheckBox = QCheckBox()

        self.messageGroupBox = QGroupBox()
        self.typeLabel = QLabel()
        self.durationLabel = QLabel()
        self.durationWarningLabel = QLabel()
        self.titleLabel = QLabel()
        self.bodyLabel = QLabel()

        self.typeComboBox = QComboBox()
        self.durationSpinBox = QSpinBox()
        self.titleEdit = QLineEdit()
        self.bodyEdit = QTextEdit()
        self.showMessageButton = QPushButton()

        self.minimizeAction = QAction()
        self.maximizeAction = QAction()
        self.restoreAction = QAction()
        self.quitAction = QAction()

        self.trayIcon = QSystemTrayIcon()
        self.trayIconMenu = QMenu()

        self.createIconGroupBox()
        self.createMessageGroupBox()

        self.iconLabel.setMinimumWidth(self.durationLabel.sizeHint().width())

        self.createActions()
        self.createTrayIcon()

        self.showMessageButton.clicked.connect(self.showMessage)
        self.showIconCheckBox.toggled.connect(self.trayIcon.setVisible)
        self.iconComboBox.currentIndexChanged.connect(self.setIcon)
        self.trayIcon.messageClicked.connect(self.messageClicked)
        self.trayIcon.activated.connect(self.iconActivated)

        self.mainLayout = QVBoxLayout()
        self.mainLayout.addWidget(self.iconGroupBox)
        self.mainLayout.addWidget(self.messageGroupBox)
        self.setLayout(self.mainLayout)

        self.iconComboBox.setCurrentIndex(1)
        self.trayIcon.show()

        self.setWindowTitle("Systray")
        self.resize(400, 300)
示例#14
0
 def context_menu_event(self, event):
     context_menu = QMenu()
     open_in_new_tab_action = context_menu.addAction("Open in New Tab")
     remove_action = context_menu.addAction("Remove...")
     current_item = self._current_item()
     open_in_new_tab_action.setEnabled(current_item is not None)
     remove_action.setEnabled(current_item is not None)
     chosen_action = context_menu.exec_(event.globalPos())
     if chosen_action == open_in_new_tab_action:
         self.open_bookmarkInNewTab.emit(current_item.data(_url_role))
     elif chosen_action == remove_action:
         self._remove_item(current_item)
示例#15
0
    def __init__(self, parent=None):
        QSystemTrayIcon.__init__(self, QIcon(resource_path("icons/logo.png")), parent)
        self.setVisible(True)
        self.setToolTip("SSD: Zextras Drive Desktop")

        menu = QMenu()
        self.show_option = QAction("Mostra")
        self.exit_option = QAction("Esci")

        menu.addAction(self.show_option)
        menu.addAction(self.exit_option)

        self.setContextMenu(menu)
示例#16
0
    def show_tray(self):
        if QSystemTrayIcon.isSystemTrayAvailable:
            # create tray menu
            traymenu = QMenu('AyoShalat', self)
            openwin_menu = traymenu.addAction('Show me!')
            openwin_menu.triggered.connect(self.show)

            playazan_menu = traymenu.addAction('Play Azan')
            playazan_menu.triggered.connect(self.playAzan)
            
            stop_azan_menu = traymenu.addAction('Stop Azan')
            stop_azan_menu.triggered.connect(self.stopAzan)

            traymenu.addSeparator()

            exit_menu = traymenu.addAction('Exit')
            exit_menu.triggered.connect(self.exit)

            # create tray icon
            qtray = QSystemTrayIcon(self)

            qtray.setIcon(QIcon(self.icopath))
            qtray.setVisible(True)
            qtray.setContextMenu(traymenu)
            qtray.show()
示例#17
0
 def create_menu_bar(self):
     menu_bar = self.menuBar()
     file_menu = QMenu('File', self)
     settings_action = QAction('Settings', self)
     settings_action.triggered.connect(self.open_settings)
     exit_action = QAction('Exit', self)
     exit_action.triggered.connect(self.close_event)
     file_menu.addAction(settings_action)
     file_menu.addAction(exit_action)
     help_menu = QMenu('Help', self)
     about_action = QAction('About', self)
     help_menu.addAction(about_action)
     menu_bar.addMenu(file_menu)
     menu_bar.addMenu(help_menu)
示例#18
0
    def addTargetActions(self, menu: QMenu):
        selected_items = [
            i.text() for i in self.list_input_files.selectedItems()
        ]
        selected_items += [
            self.currentOutputList[i.row()]
            for i in self.currentOutputListView.selectedIndexes()
        ]

        menu.addSeparator()
        # cannot use default arg to force coping the type here, since the signal also provides other inputs
        func_create = lambda _t, items: lambda: self.currentOutputList.appendTarget(
            _t(items))
        for t in target_types:
            if t.validate(selected_items):
                create_action = QAction(t.description, menu)
                create_action.triggered.connect(func_create(t, selected_items))
                menu.addAction(create_action)

        menu.addSeparator()
        func_create_batch = lambda _t, items: lambda: self.currentOutputList.extendTargets(
            [_t(i) for i in items])
        for t in target_types:
            if all(t.validate([item]) for item in selected_items):
                create_action = QAction("Batch " + t.description, menu)
                create_action.triggered.connect(
                    func_create_batch(t, selected_items))
                menu.addAction(create_action)
示例#19
0
    def showContextMenu(self, pos):
        if not self.ui.ganttView.leftView().indexAt(pos).isValid():
            self.ui.ganttView.selectionModel().clearSelection()

        menu = QMenu(self.ui.ganttView.leftView())
        menu.addAction(self.newEntryAction)
        menu.addAction(self.removeEntryAction)
        menu.exec_(self.ui.ganttView.leftView().viewport().mapToGlobal(pos))
示例#20
0
 def contextMenuEvent(self, e):
     context = QMenu(self)
     crap = QAction("thisone", self)
     crap.triggered.connect(self.fuckthisshit)
     context.addAction(crap)
     context.addAction(QAction("test 2", self))
     context.addAction(QAction("test 3", self))
     context.exec_(e.globalPos())
示例#21
0
class TrayIcon(QSystemTrayIcon):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.caps_ico = resource_path(os.path.join('ico', 'caps.ico'))
        self.small_ico = resource_path(os.path.join('ico', 'small.ico'))
        self.setIcon(QIcon(self.small_ico))
        self.showMenu()
        self.activated.connect(self.iconClied)
        self.check_caps_status()

    def showMenu(self):
        self.menu = QMenu()
        self.quitAction = QAction("退出", self, triggered=self.quit)

        self.menu.addAction(self.quitAction)
        self.setContextMenu(self.menu)

    def check_caps_status(self):
        self.check_thread = check_caps_status_work()

        def set_icon(status):
            if status == 'caps':
                self.setIcon(QIcon(self.caps_ico))
                self.setToolTip('大写')
            else:
                self.setIcon(QIcon(self.small_ico))
                self.setToolTip('小写')

        self.check_thread.signal.connect(set_icon)
        self.check_thread.start()

    def iconClied(self, reason):
        k = keyboard.Controller()
        if reason in (
                PySide6.QtWidgets.QSystemTrayIcon.ActivationReason.Trigger,
                PySide6.QtWidgets.QSystemTrayIcon.ActivationReason.DoubleClick
        ):
            k.press(keyboard.Key.caps_lock)
            k.release(keyboard.Key.caps_lock)

    def quit(self):
        self.setVisible(False)
        if 'check_thread' in dir(self):
            self.check_thread.stop()
        QApplication.quit()
        sys.exit()
示例#22
0
    def __init__(self, download_keyword, dirname, parent=None):
        super(MainWindow,
              self).__init__(parent,
                             Qt.WindowStaysOnTopHint | Qt.CustomizeWindowHint)
        self.__dirname = dirname
        self.__download_widget = None
        self.__image_view = None
        self.__mouse_left_press_pos = None
        self.__menu = QMenu(self)

        self.init_common_ui()
        if download_keyword:
            self.init_download_ui(download_keyword)
            self.__download_widget.start_download()
        else:
            self.init_image_ui()
            self.__image_view.start_view()
 def _handle_tab_context_menu(self, point):
     index = self.tabBar().tabAt(point)
     if index < 0:
         return
     tab_count = len(self._webengineviews)
     context_menu = QMenu()
     duplicate_tab_action = context_menu.addAction("Duplicate Tab")
     close_other_tabs_action = context_menu.addAction("Close Other Tabs")
     close_other_tabs_action.setEnabled(tab_count > 1)
     close_tabs_to_the_right_action = context_menu.addAction("Close Tabs to the Right")
     close_tabs_to_the_right_action.setEnabled(index < tab_count - 1)
     close_tab_action = context_menu.addAction("&Close Tab")
     chosen_action = context_menu.exec_(self.tabBar().mapToGlobal(point))
     if chosen_action == duplicate_tab_action:
         current_url = self.url()
         self.add_browser_tab().load(current_url)
     elif chosen_action == close_other_tabs_action:
         for t in range(tab_count - 1, -1, -1):
             if t != index:
                 self.handle_tab_close_request(t)
     elif chosen_action == close_tabs_to_the_right_action:
         for t in range(tab_count - 1, index, -1):
             self.handle_tab_close_request(t)
     elif chosen_action == close_tab_action:
         self.handle_tab_close_request(index)
示例#24
0
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(353, 223)
        self.actionsetting = QAction(MainWindow)
        self.actionsetting.setObjectName(u"actionsetting")
        self.actionabout = QAction(MainWindow)
        self.actionabout.setObjectName(u"actionabout")
        self.actionimg_convert = QAction(MainWindow)
        self.actionimg_convert.setObjectName(u"actionimg_convert")
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.gridLayout_4 = QGridLayout(self.centralwidget)
        self.gridLayout_4.setObjectName(u"gridLayout_4")
        self.gridLayout_3 = QGridLayout()
        self.gridLayout_3.setObjectName(u"gridLayout_3")
        self.stackedWidget = QStackedWidget(self.centralwidget)
        self.stackedWidget.setObjectName(u"stackedWidget")
        self.stackedWidget.setMinimumSize(QSize(0, 0))

        self.gridLayout_3.addWidget(self.stackedWidget, 0, 0, 1, 1)


        self.gridLayout_4.addLayout(self.gridLayout_3, 0, 0, 1, 1)

        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QMenuBar(MainWindow)
        self.menubar.setObjectName(u"menubar")
        self.menubar.setGeometry(QRect(0, 0, 353, 22))
        self.menuabout = QMenu(self.menubar)
        self.menuabout.setObjectName(u"menuabout")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QStatusBar(MainWindow)
        self.statusbar.setObjectName(u"statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.menubar.addAction(self.menuabout.menuAction())
        self.menuabout.addAction(self.actionabout)

        self.retranslateUi(MainWindow)

        self.stackedWidget.setCurrentIndex(-1)


        QMetaObject.connectSlotsByName(MainWindow)
示例#25
0
    def __init__(self, parent):
        super().__init__()

        # set ui direction
        ui_direction = parent.persepolis_setting.value('ui_direction')

        if ui_direction == 'rtl':
            self.setLayoutDirection(Qt.RightToLeft)

        elif ui_direction in 'ltr':
            self.setLayoutDirection(Qt.LeftToRight)

        # creating context menu
        self.category_tree_menu = QMenu(self)

        # connecting activation  event
        self.activated.connect(parent.categoryTreeSelected)
        self.pressed.connect(parent.categoryTreeSelected)
示例#26
0
    def __init__(self, parent):
        super().__init__()

        # set ui direction
        ui_direction = parent.persepolis_setting.value('ui_direction')

        if ui_direction == 'rtl':
            self.setLayoutDirection(Qt.RightToLeft)

        elif ui_direction in 'ltr':
            self.setLayoutDirection(Qt.LeftToRight)

        # creating context menu
        self.tablewidget_menu = QMenu(self)
        self.sendMenu = self.tablewidget_menu.addMenu('')

        # don't wrap items
        self.setWordWrap(False)
示例#27
0
 def onDataViewContextMenu(self, pos):
     if not self.group_id:
         return
     index = self.DataView.indexAt(pos)
     menu_title = QWidgetAction(self.DataView)
     title_lbl = QLabel()
     title_lbl.setText(self.tr("Change type to:"))
     menu_title.setDefaultWidget(title_lbl)
     contextMenu = QMenu(self.DataView)
     contextMenu.addAction(menu_title)
     contextMenu.addSeparator()
     combo_model = self.GroupCombo.model()
     for i in range(self.GroupCombo.count()):
         type_id = combo_model.data(
             combo_model.index(
                 i, combo_model.fieldIndex(self.group_fkey_field)))
         contextMenu.addAction(self.GroupCombo.itemText(i),
                               partial(self.updateItemType, index, type_id))
     contextMenu.popup(self.DataView.viewport().mapToGlobal(pos))
示例#28
0
文件: holdings.py 项目: flmnvd/jal
 def onHoldingsContextMenu(self, pos):
     index = self.HoldingsTableView.indexAt(pos)
     contextMenu = QMenu(self.HoldingsTableView)
     actionShowChart = QAction(text=self.tr("Show Price Chart"),
                               parent=self.HoldingsTableView)
     actionShowChart.triggered.connect(partial(self.showPriceChart, index))
     contextMenu.addAction(actionShowChart)
     actionEstimateTax = QAction(text=self.tr("Estimate Russian Tax"),
                                 parent=self.HoldingsTableView)
     actionEstimateTax.triggered.connect(
         partial(self.estimateRussianTax, index))
     contextMenu.addAction(actionEstimateTax)
     contextMenu.popup(self.HoldingsTableView.viewport().mapToGlobal(pos))
示例#29
0
 def populate(self) -> None:
     for category_name in self._my_sorted(self.d.keys()):
         url_list = self.d[category_name]
         menu = QMenu(self.root_menu)
         menu.setToolTipsVisible(True)
         menu.setTitle(category_name)
         self.root_menu.addMenu(menu)
         for entry in self._my_sorted(url_list):
             result = self.extract_parts(entry)
             if result:
                 description, link = result
                 act = QAction(description, self.parent)
                 act.setToolTip(link)
                 act.triggered.connect(partial(self.open_new_browser_tab_fn, link))
                 menu.addAction(act)
             else:
                 if re.search(r"^-{3,}$", entry):    # "---" (with length >= 3) is a separator
                     menu.addSeparator()
                 else:
                     log.warning(f"couldn't parse the bookmark line '{entry}'")
示例#30
0
    def context_menu(self):
        """Add context menu triggered by right click

        The two purpose is to delete the column
        and change tile color
        """

        menu = QMenu(self)

        for color_name in TILE_STYLE:
            label = QLabel(color_name, self)

            label.setStyleSheet(MENU_STYLE[color_name])
            action = QWidgetAction(self)
            action.setDefaultWidget(label)
            action.triggered.connect(
                partial(self.color_change, color=color_name))
            menu.addAction(action)

        return menu