Как создать меню ленты в PySide - PullRequest
1 голос
/ 19 июня 2019

Я пытаюсь создать настольное приложение с современным пользовательским интерфейсом, я имею в виду именно замену традиционной панели инструментов и панели инструментов меню ленты, например, как в MS Office Suite.

Я добился некоторого прогресса в работе с QToolBar (с QActions), встроенным в QTabWidget, но проблема была в том, что он показывался правильно только тогда, когда я установил его как CentralWidget. Позже, когда я захотел реализовать таблицу (QTableWidget), он не смог показать ничего, кроме таблицы ...

Метод для ленты:

    def tab_menu(self):
        self.tabWidget = QTabWidget()
        self.tabWidget.setFixedHeight(120)
        self.setCentralWidget(self.tabWidget)

        self.tab1 = QFrame()
        layout = QGridLayout()

        addFile = QAction('Add entry', self)
        addFile.setIcon(icon1)
        removeFile = QAction('Remove entry', self)
        removeFile.setIcon(icon2)
        addFolder = QAction('New category', self)
        addFolder.setIcon(icon3)
        removeFolder = QAction('Remove category', self)
        removeFolder.setIcon(icon4)
        editFile = QAction('Change entry', self)
        editFile.setIcon(icon5)

        toolBar = QToolBar()
        toolBar.addAction(addFile)
        toolBar.addAction(removeFile)
        toolBar.addAction(editFile)
        toolBar.addSeparator()
        toolBar.addAction(addFolder)
        toolBar.addAction(removeFolder)

        icon_width = 60
        toolBar.setIconSize(QSize(icon_width, icon_width))

        layout.setAlignment(Qt.AlignLeft)
        layout.addWidget(toolBar, 0, 0)

        self.tab1.setLayout(layout)
        self.tabWidget.addTab(self.tab1, 'Edit')
        self.tabWidget.show()

Я хотел бы знать, как можно «привязать» QTabWidget к месту, где должна находиться панель инструментов / меню. Я видел макет, показанный на https://doc.qt.io/qt-5/qmainwindow.html,, но я не уверен, как его использовать.

...