如何将 QMenu 项目移动到 QMenuBar 的右上角

Posted

技术标签:

【中文标题】如何将 QMenu 项目移动到 QMenuBar 的右上角【英文标题】:How can I move a QMenu item to the right corner of a QMenuBar 【发布时间】:2015-02-09 15:20:58 【问题描述】:

我的菜单项是通过 UI 设计器添加的。我似乎找不到合适的解决方案。我在 IRC 上问过这个解决方案 How do I set QMenu to align to the right of a toolbar? 我并不清楚。

有没有一种简单的方法可以通过访问 MainWindow 构造函数中的 UI 代码来做到这一点?还是有其他指针?

【问题讨论】:

How do I set QMenu to align to the right of a toolbar?的可能重复 【参考方案1】:

要将菜单添加到菜单栏的右侧,您可以使用 setCornerWidget 添加一个包含所需菜单的新 QMenuBar 作为右上角的小部件:

QMenuBar *bar = new QMenuBar(ui->menuBar);

QMenu *menuHelp = new QMenu("Help", bar);
bar->addMenu(menuHelp);

ui->menuBar->setCornerWidget(bar);

【讨论】:

【参考方案2】:

如果您使用 QtDesigner,则有一个“属性编辑器”,其中列出了您当前所选项目的所有属性。

如果选择菜单栏,则有一个“layoutDirection”属性,选择“LeftToRight”或“RightToLeft”

如果是手动设置的话。就这样使用:

 QApplication app(argc, argv);
 app.setLayoutDirection(Qt::RightToLeft);

【讨论】:

这将我所有的菜单项放在右侧。我只需要将“关于”菜单项放在右侧....

以上是关于如何将 QMenu 项目移动到 QMenuBar 的右上角的主要内容,如果未能解决你的问题,请参考以下文章

如何将 QWidget 添加到 QMenuBar?

Qt5-控件-QMenu,QMenuBar-菜单栏详解-菜单热键-菜单校验功能

QMenuBar的自绘处理和弹出位置控制

PyQt5 组件之QMenuBar

5.1 Qmenu菜单栏

将 QMenuBar 放在 QT 中的 QMainWindow 底部