コード例 #1
0
    def createMenuBar(self):
        self.menuBar = Qt.QMenuBar()

        # File Menu
        self.fileMenu = self.menuBar.addMenu("File")
        self.fileMenu.setStatusTip("Open File Menu")
        self.fileMenu.addAction(self.openFileAct)
        self.fileMenu.addAction(self.setOutputFilePathAct)
        self.fileMenu.addSeparator()
        self.fileMenu.addAction(self.exitAct)

        # Settings Menu
        self.settingsMenu = self.menuBar.addMenu("Settings")
        self.settingsMenu.setStatusTip("Open Settings Menu")

        self.settingsMenu.addAction(self.addPathAct)
        self.settingsMenu.addAction(self.deletePathAct)
        self.settingsMenu.addSeparator()

        self.deepScanMenu = Qt.QMenu("Toogle Deep Scan")
        self.deepScanMenu.setStatusTip("Toggle Deep Scan On/Off")
        self.settingsMenu.addMenu(self.deepScanMenu)
        self.deepScanMenu.addAction(self.deepScanOnAct)
        self.deepScanMenu.addAction(self.deepScanOffAct)

        self.setMenuBar(self.menuBar)
コード例 #2
0
    def editorEvent(self, event, model, option, midx):
        if not midx.isValid() or option.widget is None:
            return False
        flags = midx.flags()
        item_is_enabled = flags | Qt.Qt.ItemIsEnabled
        item_is_editable = flags | Qt.Qt.ItemIsEditable
        if not item_is_enabled or not item_is_editable:
            return False
        menu = Qt.QMenu(option.widget)
        menu.setAttribute(Qt.Qt.WA_DeleteOnClose)
        choices = midx.data(CHOICES_QITEMDATA_ROLE)
        choice_actions = [menu.addAction(choice) for choice in choices]
        try:
            current_choice = midx.data()
            if isinstance(current_choice, Qt.QVariant):
                current_choice = current_choice.value()
            current_choice_action = choice_actions[choices.index(
                current_choice)]
            menu.setActiveAction(current_choice_action)
        except ValueError:
            current_choice_action = None
        cell_rect = option.widget.visualRect(midx)
        menu_pos = option.widget.mapToGlobal(
            Qt.QPoint(cell_rect.left(),
                      (cell_rect.top() + cell_rect.bottom()) / 2))
        pmidx = Qt.QPersistentModelIndex(midx)

        def on_entry_selected(action):
            if pmidx.isValid():
                model.setData(model.index(pmidx.row(), pmidx.column()),
                              action.text().replace('&', ''))

        menu.triggered.connect(on_entry_selected)
        menu.popup(menu_pos, current_choice_action)
        return False
コード例 #3
0
ファイル: application.py プロジェクト: timwienk/lcurse
 def contextMenuEvent(self, event):
     self.menu = Qt.QMenu(self)
     rows = self.currentRows()
     if len(rows) == 1:
         name = self.item(rows[0], 0).text()
     else:
         name = self.tr("multiple addons")
     self.menu.addAction(self.tr("Context menu for {}").format(name))
     actionUpdate = Qt.QAction(self.tr("Update addon"), self)
     actionUpdate.setStatusTip(
         self.tr("Update currently selected addons if needed"))
     actionUpdate.triggered.connect(self.parent.updateAddons)
     self.menu.addAction(actionUpdate)
     actionForceUpdate = Qt.QAction(self.tr("Force Update addon"), self)
     actionForceUpdate.setStatusTip(
         self.tr("Unconditionally update currently selected addons"))
     actionForceUpdate.triggered.connect(self.parent.forceUpdateAddon)
     self.menu.addAction(actionForceUpdate)
     actionRemovefromlist = Qt.QAction(self.tr("Remove addon from list"),
                                       self)
     actionRemovefromlist.setStatusTip(
         self.tr("Leave all files unaltered, useful for subaddons"))
     actionRemovefromlist.triggered.connect(self.parent.removeFromList)
     self.menu.addAction(actionRemovefromlist)
     self.menu.popup(Qt.QCursor.pos())
コード例 #4
0
 def contextMenuEvent(self, event):
     self.menu = Qt.QMenu(self)
     row = self.currentRow()
     name = self.item(row, 0).text()
     self.menu.addAction(self.tr("{}").format(name))
     removefromlistAction = Qt.QAction(self.tr("Remove from list"), self)
     removefromlistAction.setStatusTip(
         self.tr("Leave all files unaltered, useful for subaddons"))
     removefromlistAction.triggered.connect(self.removeFromList)
     self.menu.addAction(removefromlistAction)
     actionUpdate = Qt.QAction(self.tr("Update addon"), self)
     actionUpdate.setStatusTip(
         self.tr("Update currently selected addon if needed"))
     actionUpdate.triggered.connect(self.parent.updateAddon)
     self.menu.addAction(actionUpdate)
     actionForceUpdate = Qt.QAction(self.tr("Force Update addon"), self)
     actionForceUpdate.setStatusTip(
         self.tr("Unconditionally update currently selected addon"))
     actionForceUpdate.triggered.connect(self.parent.forceUpdateAddon)
     self.menu.addAction(actionForceUpdate)
     self.menu.addSeparator()
     actionRemove = Qt.QAction(self.tr("Delete addon"), self)
     actionRemove.setStatusTip(self.tr("Completely remove selected addon"))
     actionRemove.triggered.connect(self.parent.removeAddon)
     self.menu.addAction(actionRemove)
     self.menu.popup(Qt.QCursor.pos())
コード例 #5
0
 def contextMenuEvent(self, event):
     self.menu = Qt.QMenu(self)
     row = self.currentRow()
     name = self.item(row, 0).text()
     self.menu.addAction(self.tr("Menu contextuel de {}").format(name))
     actionUpdate = Qt.QAction(self.tr("Mise à jour Addon"), self)
     actionUpdate.setStatusTip(
         self.tr("Mise à jour des Addons sélectionnés si nécessaire"))
     actionUpdate.triggered.connect(self.parent.updateAddon)
     self.menu.addAction(actionUpdate)
     actionForceUpdate = Qt.QAction(self.tr("Forcer la mise à jour Addon"),
                                    self)
     actionForceUpdate.setStatusTip(
         self.tr("Mise à jour forcée des Addons sélectionnés"))
     actionForceUpdate.triggered.connect(self.parent.forceUpdateAddon)
     self.menu.addAction(actionForceUpdate)
     actionRemovefromlist = Qt.QAction(
         self.tr("Supprimer addon de la liste"), self)
     actionRemovefromlist.setStatusTip(
         self.
         tr("Laisser tous les fichiers inchangés, utile pour les sous-addons"
            ))
     actionRemovefromlist.triggered.connect(self.parent.removeFromList)
     self.menu.addAction(actionRemovefromlist)
     self.menu.popup(Qt.QCursor.pos())
コード例 #6
0
    def eventFilter(self, obj, event):
        """
        Filter events if this object has been installed as an event
        filter for the watched object.

        Shows dedicated context menu for categories panel.

        Arguments:
            obj (QObject): Watched object.
            event (QEvent): Event being processed.

        Returns:
            bool: *True* if event should be filtered out (i.e. if
            further processing should be stopped); *False* otherwise.
        """
        if obj == self.panel and event.type() == Q.QEvent.ContextMenu:
            menu = Q.QMenu()
            menu.addAction(translate("ShowAllPanel", "Expand all"),
                           self.expandAll)
            menu.addAction(translate("ShowAllPanel", "Collapse all"),
                           self.collapseAll)
            event.accept()
            menu.exec_(self.mapToGlobal(event.pos()))
        # pragma pylint: disable=no-member
        return False
コード例 #7
0
    def __contextMenu(self, point):
        modelindex = self.ui.treeView.indexAt(point)
        item = self._tree_model.item(modelindex)
        if not item:
            return

        actions = [
            """self.menu.addAction("Sign driver configuration",
            self.actionSaveConfigMth)""",
            """self.menu.addAction("Solve driver configuration conflict",
            self.contextSolveConflict)""",
            """self.menu.addAction("Delete driver not present",
            self.contextDeleteDriverError)""",
            """self.menu.addAction("New driver. Keep or set to default",
            self.contextSolveNewDriver)""",
            """self.menu.addSeparator()""",
            """self.menu.addAction("Start Icepap system configuration",
            self.contextIcepapStart)""",
            """self.menu.addAction("Rescan Icepap system",
            self.contextIcepapStart)""",
            """self.menu.addAction("Finish Icepap system configuration",
            self.contextIcepapStop)""",
            """self.menu.addSeparator()""",
            """self.menu.addAction("Edit Icepap system information",
            self.contextEditIcepap)""",
            """self.menu.addAction("Delete Icepap system configuration",
            self.btnTreeRemove_on_click)""",
            """self.menu.addSeparator()""",
            """self.menu.addAction("Open Icepap console",
            self.contextOpenConsole)""",
        ]
        self.menu = Qt.QMenu(self)
        font = QtGui.QFont()
        font.setPointSize(8)
        self.menu.setFont(font)
        self.context_menu_item = item
        shown_actions = []
        if item.role == IcepapTreeModel.SYSTEM_OFFLINE:
            shown_actions = [5, 8, 9, 10, 11, 12]
        if item.role == IcepapTreeModel.DRIVER:
            shown_actions = [6, 7, 8, 9, 10, 11, 12]
        elif item.role == IcepapTreeModel.DRIVER_CFG:
            shown_actions = [0, 4, 6, 7, 8, 9, 10, 11, 12]
        elif item.role == IcepapTreeModel.DRIVER_ERROR:
            shown_actions = [2, 4, 6, 7, 8, 9, 10, 11, 12]
        elif item.role == IcepapTreeModel.DRIVER_WARNING:
            shown_actions = [1, 4, 6, 7, 8, 9, 10, 11, 12]
        elif item.role == IcepapTreeModel.DRIVER_NEW:
            shown_actions = [3, 4, 6, 7, 8, 9, 10, 11, 12]
        elif item.role == IcepapTreeModel.SYSTEM or \
                item.role == IcepapTreeModel.CRATE or \
                item.role == IcepapTreeModel.SYSTEM_ERROR or \
                item.role == IcepapTreeModel.SYSTEM_WARNING:
            shown_actions = [6, 7, 8, 9, 10, 11, 12]
        for i in shown_actions:
            exec(actions[i])
        self.menu.popup(self.cursor().pos())
コード例 #8
0
ファイル: layer_table.py プロジェクト: zplab/RisWidget
    def contextMenuEvent(self, event):
        focused_midx = self.selectionModel().currentIndex()
        if not focused_midx.isValid():
            return
        row = self.rowAt(event.pos().y())
        col = self.columnAt(event.pos().x())
        if row != focused_midx.row() or col != focused_midx.column():
            return
        try:
            pname = self.layer_table_model.property_names[col]
        except IndexError:
            return
        try:
            psdg = self.layer_table_model._special_data_getters[pname]
        except KeyError:
            return
        if psdg != self.layer_table_model._getd_defaultable_property:
            return
        try:
            layer = self.layer_table_model.layer_stack.layers[-(row + 1)]
        except IndexError:
            return
        try:
            p = getattr(type(layer), pname)
        except AttributeError:
            return
        if p.is_default(layer):
            return
        menu = Qt.QMenu(self)
        reset_to_default_action = Qt.QAction('Reset to default value', menu)

        def on_reset_action():
            p.__delete__(layer)

        reset_to_default_action.triggered.connect(on_reset_action)
        menu.addAction(reset_to_default_action)
        menu.exec(event.globalPos())
コード例 #9
0
    def __init__(self, app, group_name, list_of_exams):
        super().__init__()

        update_button = Qt.QPushButton(Qt.QIcon(common.UPDATE), '', self)
        update_button.setObjectName('Flat')
        update_button.setCursor(Qt.Qt.PointingHandCursor)
        update_button.setIconSize(Qt.QSize(35, 35))
        update_button.setFixedSize(Qt.QSize(55, 55))
        update_button.clicked.connect(lambda _: app.display_home_page())

        exams_title = Qt.QLabel('Экзамены группы ' + group_name, self)
        exams_title.setFont(Qt.QFont('Arial', 30))

        view_profile_action = Qt.QWidgetAction(self)
        view_profile_action.setFont(Qt.QFont('Arial', 15))
        view_profile_action.setText('Профиль')
        view_profile_action.triggered.connect(
            lambda _: app.display_profile_page())

        exit_action = Qt.QWidgetAction(self)
        exit_action.setFont(Qt.QFont('Arial', 15))
        exit_action.setText('Выйти')
        exit_action.triggered.connect(lambda _: app.logout())

        user_menu = Qt.QMenu(self)
        user_menu.addAction(view_profile_action)
        user_menu.addAction(exit_action)

        user_button = Qt.QPushButton(Qt.QIcon(common.USER), '', self)
        user_button.setObjectName('Flat')
        user_button.setCursor(Qt.Qt.PointingHandCursor)
        user_button.setIconSize(Qt.QSize(35, 35))
        user_button.setFixedSize(Qt.QSize(55, 55))
        user_button.setMenu(user_menu)

        scroll_area = Qt.QScrollArea()
        scroll_area.setFrameShape(Qt.QFrame.NoFrame)

        scroll_layout = Qt.QVBoxLayout()
        scroll_layout.setSizeConstraint(Qt.QLayout.SetMinimumSize)

        for exam in list_of_exams:
            exam_id = exam['rowid']
            exam_name = exam['name']

            exam_button = Qt.QPushButton(Qt.QIcon(common.EXAM30), exam_name,
                                         self)
            exam_button.setObjectName('Flat')
            exam_button.setCursor(Qt.Qt.PointingHandCursor)
            exam_button.setIconSize(Qt.QSize(30, 30))
            exam_button.setFont(Qt.QFont('Arial', 20))
            exam_button.clicked.connect(
                common.return_lambda(app.display_exam, exam_id))

            exam_layout = Qt.QHBoxLayout()
            exam_layout.addWidget(exam_button)
            exam_layout.addStretch(1)

            scroll_layout.addLayout(exam_layout)

        scroll_layout.addStretch(1)

        scroll_widget = Qt.QWidget(self)
        scroll_widget.setLayout(scroll_layout)
        scroll_area.setWidget(scroll_widget)

        upper_layout = Qt.QHBoxLayout()
        upper_layout.addWidget(update_button)
        upper_layout.addStretch(1)
        upper_layout.addWidget(exams_title)
        upper_layout.addStretch(1)
        upper_layout.addWidget(user_button)

        layout = Qt.QVBoxLayout()
        layout.addLayout(upper_layout)
        layout.addSpacerItem(Qt.QSpacerItem(0, 20))
        layout.addWidget(scroll_area)
        self.setLayout(layout)
コード例 #10
0
    def __init__(self, plugin, gui, icon):

        Qt.QDialog.__init__(self, gui)
        self.plugin = plugin
        self.gui = gui
        self.full_db = gui.current_db
        self.db = gui.current_db.new_api

        self.elastic_search_client = None
        self.conversion_time_dict = {}

        self.setWindowTitle(TITLE)
        self.setWindowIcon(icon)
        self.setWindowFlags(QtCore.Window | QtCore.WindowTitleHint
                            | QtCore.CustomizeWindowHint)

        max_fit_size_policy = QtWidgets.QSizePolicy(
            QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)

        self.layout = Qt.QVBoxLayout()
        self.setLayout(self.layout)

        self.search_label = Qt.QLabel('Enter &text to search in content')
        self.layout.addWidget(self.search_label)

        self.search_text_layout = Qt.QHBoxLayout()

        self.search_textbox = Qt.QComboBox(self)
        self.search_textbox.setMinimumWidth(400)
        self.search_textbox.setEditable(True)
        self.search_textbox.setInsertPolicy(Qt.QComboBox.NoInsert)
        for _, value in sorted(prefs.get('search_lru', {}).items()):
            self.search_textbox.addItem(value)
        self.search_textbox.setEditText('')
        self.search_textbox.editTextChanged.connect(
            self.on_search_text_changed)
        self.search_label.setBuddy(self.search_textbox)
        self.search_text_layout.addWidget(self.search_textbox)

        self.search_help_button = Qt.QToolButton(self)
        self.search_help_button.setText('?')
        fixed_size_policy = self.search_help_button.sizePolicy()
        fixed_size_policy.setHorizontalPolicy(QtWidgets.QSizePolicy.Fixed)
        self.search_help_button.setSizePolicy(fixed_size_policy)
        self.search_help_button.clicked.connect(self.on_search_help)
        self.search_text_layout.addWidget(self.search_help_button)

        self.layout.addLayout(self.search_text_layout)

        self.search_button = Qt.QToolButton(self)
        self.search_button.setEnabled(False)
        self.search_button.setToolButtonStyle(QtCore.ToolButtonTextBesideIcon)
        self.search_button.setText('&Search')
        self.search_button.setPopupMode(Qt.QToolButton.MenuButtonPopup)
        self.search_button.clicked.connect(self.on_search_all)
        self.search_dropdown = Qt.QMenu()
        self.search_dropdown.addAction('Search in the &whole library',
                                       self.on_search_all)
        self.search_dropdown.addAction('Search in &selected books',
                                       self.on_search_selected)
        self.search_button.setMenu(self.search_dropdown)
        self.search_button.setSizePolicy(max_fit_size_policy)

        self.layout.addWidget(self.search_button)

        self.cancel_button = Qt.QToolButton(self)
        self.cancel_button.setText('&Cancel')
        self.cancel_button.clicked.connect(self.on_cancel)
        self.cancel_button.setVisible(False)
        self.cancel_button.setSizePolicy(max_fit_size_policy)

        self.layout.addWidget(self.cancel_button)

        self.status_label = Qt.QLabel()
        self.status_label.setAlignment(QtCore.AlignCenter)
        self.layout.addWidget(self.status_label)

        self.progress_bar = Qt.QProgressBar(self)
        self.progress_bar.setVisible(False)
        retain_size_policy = self.progress_bar.sizePolicy()
        retain_size_policy.setRetainSizeWhenHidden(True)
        self.progress_bar.setSizePolicy(retain_size_policy)
        self.layout.addWidget(self.progress_bar)

        self.details_button = Qt.QPushButton(self)
        self.details_button.setText('&Details')
        self.details_button.setVisible(False)
        retain_size_policy = self.details_button.sizePolicy()
        retain_size_policy.setRetainSizeWhenHidden(True)
        self.details_button.setSizePolicy(retain_size_policy)
        self.details_button.setFlat(True)
        self.details_button.setStyleSheet('text-align: left')
        icon = get_icons('images/right-arrow.png')
        self.details_button.setIcon(icon)
        self.details_button.clicked.connect(self.on_details)
        self.layout.addWidget(self.details_button)

        self.details = Qt.QListWidget(self)
        self.details.setVisible(False)
        self.layout.addWidget(self.details)

        self.layout.addStretch()

        self.reindex_button = Qt.QToolButton(self)
        self.reindex_button.setToolButtonStyle(QtCore.ToolButtonTextBesideIcon)
        self.reindex_button.setText('Reindex &new books')
        self.reindex_button.setPopupMode(Qt.QToolButton.MenuButtonPopup)
        self.reindex_button.clicked.connect(self.on_reindex)
        self.reindex_dropdown = Qt.QMenu()
        self.reindex_dropdown.addAction('Reindex &new books', self.on_reindex)
        self.reindex_dropdown.addAction('Reindex &all books',
                                        self.on_reindex_all)
        self.reindex_button.setMenu(self.reindex_dropdown)
        self.reindex_button.setSizePolicy(max_fit_size_policy)

        self.layout.addWidget(self.reindex_button)

        self.conf_button = Qt.QToolButton(self)
        self.conf_button.setText('&Options...')
        self.conf_button.clicked.connect(self.on_config)
        self.conf_button.setSizePolicy(max_fit_size_policy)
        self.layout.addWidget(self.conf_button)

        self.readme_button = Qt.QToolButton(self)
        self.readme_button.setText('&Readme...')
        self.readme_button.clicked.connect(self.on_readme)
        self.readme_button.setSizePolicy(max_fit_size_policy)
        self.layout.addWidget(self.readme_button)

        self.close_button = Qt.QToolButton(self)
        self.close_button.setText('&Close')
        self.close_button.clicked.connect(self.close)
        self.close_button.setSizePolicy(max_fit_size_policy)
        self.layout.addWidget(self.close_button)

        self.thread_pool = Qt.QThreadPool()

        self.add_workers_submitted = 0
        self.add_workers_complete = 0

        self.delete_workers_submitted = 0
        self.delete_workers_complete = 0

        self.first_paint = True

        self.pdftotext_full_path = None

        self.ids = None

        if 'version' not in prefs:
            file_formats = set(prefs['file_formats'].split(',') +
                               ARCHIVE_FORMATS)
            prefs['file_formats'] = ','.join(file_formats)
        prefs['version'] = CapsPlugin.version

        self.key_pressed.connect(self.on_key_pressed)
コード例 #11
0
ファイル: mainUI.py プロジェクト: yrowe/myStuManager
    def initUI(self):
        _translate = QtCore.QCoreApplication.translate
        #self.setWindowTitle("毕业设计")
        self.resize(1200, 600)

        rect = self.frameGeometry()
        rect.moveCenter(QApplication.desktop().availableGeometry().center())
        self.move(rect.topLeft())

        self.stuInfoList = QTableWidget(self)
        self.stuInfoList.setEditTriggers(self.stuInfoList.NoEditTriggers)
        self.stuInfoList.verticalHeader().setHidden(True)
        self.stuInfoList.setColumnCount(10)
        self.stuInfoList.setHorizontalHeaderLabels(
            ["学号", "姓名", "性别", "年级", "专业", "政治", "英语", "数学", "专业课", "总分"])
        #选中条目的动作为选中那一行
        self.stuInfoList.setSelectionBehavior(Qt.QAbstractItemView.SelectRows)
        #单行选中
        self.stuInfoList.setSelectionMode(Qt.QAbstractItemView.SingleSelection)
        #将每个条目扩展到充满容器
        self.stuInfoList.horizontalHeader().setStretchLastSection(True)
        #将容器宽度平均分给所有条目
        self.stuInfoList.horizontalHeader().setSectionResizeMode(
            Qt.QHeaderView.Stretch)

        header = self.stuInfoList.horizontalHeader()
        #header.setSortIndicator(5, QtCore.Qt.AscendingOrder)
        header.setSortIndicatorShown(True)
        header.setSectionsClickable(True)
        #connect(headerGoods, SIGNAL(sectionClicked(int)), _nodeTableWidget, SLOT (sortByColumn(int)))

        self.createButton = Qt.QPushButton(self)
        self.createButton.setText("新建")
        self.createButton.setDefault(True)

        self.deleteButton = Qt.QPushButton(self)
        self.deleteButton.setText("删除")

        self.modifyButton = Qt.QPushButton(self)
        self.modifyButton.setText("修改")

        self.queryButton = Qt.QPushButton(self)
        self.queryButton.setText("查询")

        self.flushButton = Qt.QPushButton(self)
        self.flushButton.setText("后退")

        self.menuBar = Qt.QMenuBar(self)

        menu = Qt.QMenu(self.menuBar)
        menu.setTitle("菜单")

        menu_A = Qt.QMenu(self.menuBar)
        menu_A.setTitle("关于")
        self.menuBar.addMenu(menu)
        self.menuBar.addMenu(menu_A)

        self.openAbout = Qt.QAction(menu_A)
        self.openAbout.setText("作品相关")
        menu_A.addAction(self.openAbout)

        self.openDataBaseAction = Qt.QAction(menu)
        self.openDataBaseAction.setText("打开数据库")
        menu.addAction(self.openDataBaseAction)

        self.createNewAction = Qt.QAction(menu)
        self.createNewAction.setText("新建档案")
        #self.enterAction.triggered.connect(self.enterActionTriggered)
        menu.addAction(self.createNewAction)

        self.createNewAccount = Qt.QAction(menu)
        self.createNewAccount.setText("新建学生账户")
        menu.addAction(self.createNewAccount)

        self.findDisqualified = Qt.QAction(menu)
        self.findDisqualified.setText("查询不及格")
        menu.addAction(self.findDisqualified)

        self.fileCloseAction = Qt.QAction(menu)
        self.fileCloseAction.setText("关闭")
        menu.addAction(self.fileCloseAction)
        '''
        self.menubar = QtWidgets.QMenuBar(self)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 608, 23))
        self.menubar.setObjectName("menubar")
        self.menu = QtWidgets.QMenu(self.menubar)
        self.menu.setObjectName("menu")
        self.menu.setTitle(_translate("MainWindow", "文件(&F)"))
        
        self.menu_E = QtWidgets.QMenu(self.menubar)
        self.menu_E.setObjectName("menu_E")
        self.menu_E.setTitle(_translate("MainWindow", "编辑(&E)"))
        '''
        layout = Qt.QGridLayout(self)
        layout.addWidget(self.stuInfoList, 3, 0, 5, -1)
        layout.addWidget(self.queryButton, 8, 9, 1, 1)
        layout.addWidget(self.createButton, 8, 6, 1, 1)
        layout.addWidget(self.modifyButton, 8, 8, 1, 1)
        layout.addWidget(self.deleteButton, 8, 7, 1, 1)
        layout.addWidget(self.flushButton, 8, 10, 1, 1)
        layout.setMenuBar(self.menuBar)
コード例 #12
0
ファイル: exam_page.py プロジェクト: m20-sch57/exam-system
    def __init__(self, app, exam_id):
        super().__init__()
        self.app = app
        self.exam_id = exam_id
        self.question_id = None
        self.question_number = None
        self.exam_data = None
        self.question_data = None
        self.questions_ids = []

        back_button = Qt.QPushButton(Qt.QIcon(common.LEFT), '', self)
        back_button.setObjectName('Flat')
        back_button.setCursor(Qt.Qt.PointingHandCursor)
        back_button.setIconSize(Qt.QSize(35, 35))
        back_button.setFixedSize(Qt.QSize(55, 55))
        back_button.clicked.connect(lambda _: app.display_home_page())

        scroll_area = Qt.QScrollArea()
        scroll_area.setWidgetResizable(True)
        scroll_area.setFrameShape(Qt.QFrame.NoFrame)
        scroll_area.setSizePolicy(Qt.QSizePolicy.Minimum,
                                  Qt.QSizePolicy.Minimum)

        self.settings_button = Qt.QPushButton(Qt.QIcon(common.SETTINGS), '',
                                              self)
        self.settings_button.setObjectName('Flat')
        self.settings_button.setCursor(Qt.Qt.PointingHandCursor)
        self.settings_button.setIconSize(Qt.QSize(30, 30))
        self.settings_button.setFixedSize(Qt.QSize(50, 50))
        self.settings_button.clicked.connect(
            lambda _: self.app.view_exam_settings())

        self.questions_layout = Qt.QHBoxLayout()
        self.questions_layout.setSpacing(0)

        short_question_action = Qt.QWidgetAction(self)
        short_question_action.setFont(Qt.QFont('Arial', 15))
        short_question_action.setText('Вопрос с кратким ответом')
        short_question_action.triggered.connect(
            lambda: self.app.create_question(self.exam_id, 'Short'))

        long_question_action = Qt.QWidgetAction(self)
        long_question_action.setFont(Qt.QFont('Arial', 15))
        long_question_action.setText('Вопрос с развёрнутым ответом')
        long_question_action.triggered.connect(
            lambda: self.app.create_question(self.exam_id, 'Long'))

        create_menu = Qt.QMenu(self)
        create_menu.addAction(short_question_action)
        create_menu.addAction(long_question_action)

        create_button = Qt.QPushButton(Qt.QIcon(common.CREATE), '', self)
        create_button.setObjectName('Flat')
        create_button.setCursor(Qt.Qt.PointingHandCursor)
        create_button.setIconSize(Qt.QSize(40, 40))
        create_button.setFixedSize(Qt.QSize(50, 50))
        create_button.setMenu(create_menu)

        self.widget = Qt.QWidget(self)

        scroll_layout = Qt.QHBoxLayout()
        scroll_layout.setSpacing(0)
        scroll_layout.setContentsMargins(0, 0, 0, 0)
        scroll_layout.setSizeConstraint(Qt.QLayout.SetMinimumSize)
        scroll_layout.addWidget(self.settings_button)
        scroll_layout.addLayout(self.questions_layout)
        scroll_layout.addSpacerItem(Qt.QSpacerItem(5, 0))
        scroll_layout.addWidget(create_button)
        scroll_layout.addStretch(1)

        scroll_widget = Qt.QWidget(self)
        scroll_widget.setLayout(scroll_layout)
        scroll_area.setWidget(scroll_widget)

        upper_layout = Qt.QHBoxLayout()
        upper_layout.addWidget(back_button)
        upper_layout.addSpacerItem(Qt.QSpacerItem(10, 0))
        upper_layout.addWidget(scroll_area)

        layout = Qt.QVBoxLayout()
        layout.addLayout(upper_layout)
        layout.addSpacerItem(Qt.QSpacerItem(0, 10))
        layout.addWidget(self.widget)
        self.setLayout(layout)
コード例 #13
0
ファイル: flipbook.py プロジェクト: adam-urbanczyk/RisWidget
 def contextMenuEvent(self, event):
     menu = Qt.QMenu(self)
     menu.addAction(self.consolidate_selected_action)
     menu.addAction(self.delete_selected_action)
     menu.exec(event.globalPos())
コード例 #14
0
    def __init__(self, astergui, parent=None, **kwargs):
        """
        Create variable edition panel.

        Arguments:
            astergui (AsterGui): Parent *AsterGui* instance.
            parent (Optional[QWidget]): Parent widget. Defaults to
                *None*.
            kwargs: Keyword arguments.
        """
        super(VariablePanel,
              self).__init__(parent=parent,
                             name=translate("VariablePanel",
                                            "Create variable"),
                             astergui=astergui,
                             **kwargs)
        self._stage = None
        self._variable = None

        grid = Q.QGridLayout(self)
        grid.setContentsMargins(0, 0, 0, 0)

        grid.addWidget(Q.QLabel(translate("VariablePanel", "Name"), self), 0,
                       0)
        self._vname = Q.QLineEdit(self)
        self._vname.setObjectName("Name")
        validator = Q.QRegExpValidator(Q.QRegExp(VariablePanel.namePattern()),
                                       self._vname)
        self._vname.setValidator(validator)
        grid.addWidget(self._vname, 0, 1, 1, 2)

        grid.addWidget(
            Q.QLabel(translate("VariablePanel", "Expression"), self), 1, 0)
        self._vexpr = Q.QLineEdit(self)
        self._vexpr.setObjectName("Expression")
        grid.addWidget(self._vexpr, 1, 1)

        self._vcomp = VariablePanel.Completer(self._vexpr)

        self._vins = Q.QToolButton(self)
        self._vins.setArrowType(Q.Qt.DownArrow)
        self._vins.setPopupMode(Q.QToolButton.InstantPopup)
        self._vins.setMenu(Q.QMenu(self._vins))
        grid.addWidget(self._vins, 1, 2)

        label = Q.QLabel(translate("VariablePanel", "Value"), self)
        grid.addWidget(label, 2, 0)
        self._veval = Q.QLineEdit(self)
        self._veval.setReadOnly(True)
        self._veval.setFrame(False)
        self._veval.setObjectName("Value")

        fnt = self._veval.font()
        fnt.setBold(True)
        fnt.setItalic(True)
        self._veval.setFont(fnt)

        pal = self._veval.palette()
        pal.setColor(self._veval.backgroundRole(),
                     label.palette().color(label.backgroundRole()))
        self._veval.setPalette(pal)

        grid.addWidget(self._veval, 2, 1, 1, 2)

        grid.addWidget(Q.QLabel(translate("VariablePanel", "Comment"), self),
                       3, 0)
        self._vcomment = Q.QPlainTextEdit(self)
        self._vcomment.setObjectName("Comment")
        grid.addWidget(self._vcomment, 3, 1, 1, 2)
        grid.setRowStretch(4, 1)

        self.setFocusProxy(self._vname)

        connect(self._vname.textChanged, self._onNameChanged)
        connect(self._vexpr.textChanged, self._onExpressionChanged)
        connect(self._vcomment.textChanged, self.updateButtonStatus)
        connect(self._vins.menu().triggered, self._onMenuTriggered)

        self._reconnect()
        self._updateState()
        self._onExpressionChanged()
コード例 #15
0
    def tree_widget_custom_menu(self, pos):
        menu = Qt.QMenu(self)
        turn_off_action = Qt.QAction(Qt.QIcon(":/eye.png"), 'Turn All Off',
                                     self)
        turn_off_action.triggered.connect(self.turn_all_off)

        create_action = Qt.QAction(Qt.QIcon(':/add.png'), 'Create Layer', self)
        create_action.triggered.connect(self.create_layer)

        selected_layers = self.tree_widget.get_selected_layers()

        if selected_layers:
            clear_selection_action = Qt.QAction(Qt.QIcon(":/clear.png"),
                                                'Clear Selection', self)
            clear_selection_action.triggered.connect(
                self.tree_widget.clearSelection)

        layer_under_mouse = self.tree_widget.get_layer_under_mouse()
        suff = 's' if len(selected_layers) > 1 else ''
        if selected_layers:
            remove_action = Qt.QAction(Qt.QIcon(':/remove.png'),
                                       f'Delete selected layer{suff}', self)
            remove_action.triggered.connect(
                lambda: self.remove_layer(selected_layers))

            duplicate_action = Qt.QAction(Qt.QIcon(':/duplicate.png'),
                                          f'Duplicate selected layer{suff}',
                                          self)
            duplicate_action.triggered.connect(
                lambda: self.duplicate_layer(selected_layers))

        if len(selected_layers) > 1:
            merge_action = Qt.QAction(Qt.QIcon(":/merge.png"),
                                      "Merge selected layers", self)
            merge_action.triggered.connect(
                lambda: self.merge_layers(selected_layers))

        rename_icon = Qt.QIcon(':/rename.png')

        if layer_under_mouse:
            rename_action = Qt.QAction(rename_icon, 'Rename layer', self)
            rename_action.triggered.connect(
                lambda: self.rename_layer(layer_under_mouse))

        if len(selected_layers) > 1:
            bulk_rename = Qt.QAction(rename_icon, f'Rename selected layers',
                                     self)
            bulk_rename.triggered.connect(
                lambda: self.bulk_rename(selected_layers))

        menu.addAction(turn_off_action)

        if selected_layers:
            menu.addSeparator()
            menu.addAction(clear_selection_action)

        menu.addSeparator()
        menu.addAction(create_action)

        if selected_layers:
            menu.addAction(remove_action)
            menu.addAction(duplicate_action)

        if len(selected_layers) > 1:
            menu.addAction(merge_action)

        menu.addSeparator()

        if layer_under_mouse:
            menu.addAction(rename_action)
        if len(selected_layers) > 1:
            menu.addAction(bulk_rename)

        menu.popup(self.tree_widget.mapToGlobal(pos))