Я пытаюсь создать настольное приложение с современным пользовательским интерфейсом, я имею в виду именно замену традиционной панели инструментов и панели инструментов меню ленты, например, как в 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,, но я не уверен, как его использовать.