为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

婷婷同学_ 2022-03-09 20:10:55
我正在尝试创建一个具有现代外观用户界面的桌面应用程序,我的意思是专门用功能区菜单替换传统的菜单栏和工具栏,例如 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看到了布局,但我不确定如何使用它。
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

这是一个老问题,但很遗憾没有得到答案。

如果您想要 a 的固定位置RibbonBar,您可以简单地将其插入QWidget容器中,使用划分您的表单QVBoxLayout并将其填充QWidget到第一个(即顶部)部分。

然而,如果您真的想使用QDockWidgetAreas,那么您必须使用 aQDockWidget作为父容器并将其放入 中TopDockWidgetArea,这将只是一个默认位置,用户可以移动它。也许也有一种方法可以使用Qt.TopToolBarArea,但我还没有尝试过。

但我想知道,是否可以自由使用 Ribbonbar 的想法。我看到一些关于专利阻止开发人员使用它的讨论。


查看完整回答
反对 回复 2022-03-09
  • 1 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信