如何在 PySide 中创建功能区菜单

我正在尝试创建一个具有现代外观用户界面的桌面应用程序,我的意思是专门用功能区菜单替换传统的菜单栏和工具栏,例如 MS Office 套件中的一个。


我在使用 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看到了布局,但我不确定如何使用它。


婷婷同学_
浏览 157回答 1
1回答

慕慕森

这是一个老问题,但很遗憾没有得到答案。如果您想要 a 的固定位置RibbonBar,您可以简单地将其插入QWidget容器中,使用划分您的表单QVBoxLayout并将其填充QWidget到第一个(即顶部)部分。然而,如果您真的想使用QDockWidgetAreas,那么您必须使用 aQDockWidget作为父容器并将其放入 中TopDockWidgetArea,这将只是一个默认位置,用户可以移动它。也许也有一种方法可以使用Qt.TopToolBarArea,但我还没有尝试过。但我想知道,是否可以自由使用 Ribbonbar 的想法。我看到一些关于专利阻止开发人员使用它的讨论。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python