如何将 QWidget 添加到 QMenuBar?

Posted

技术标签:

【中文标题】如何将 QWidget 添加到 QMenuBar?【英文标题】:How to add a QWidget to a QMenuBar? 【发布时间】:2016-08-08 15:07:24 【问题描述】:

我想将 QLabel 添加到 QMenuBar。我能够使用 QActionWidget 将 QLabel 添加到 QMenu,但我希望 QLabel 位于应用程序右端的 QMenuBar(作为 QMenu 的替代品)上。我打算在这个 QLabel 中添加一个电影,以模拟一个加载循环来指示应用程序正在运行。如何将 QWidget 添加到 QMenuBar,或者我的最终目标是否有其他选择?我正在使用 Qt 5.6 和 Qt Designer

【问题讨论】:

这不是便携式的,所以最好避免。在 Qt 运行的几乎所有环境中,它都会显得格格不入。 QLabel 是否绝对 成为QMenuBar 的一部分?如果不是,那么为什么不将QMenuBarQLabel 添加到相同的QHBoxLayout 中,并在两者之间添加一个“拉伸”。或者也许我错过了什么。 不,QLabel 不必是 QMenuBar 的一部分。我希望它始终位于我的应用程序的右上角。我似乎无法将 QMenuBar 和 QLabel 添加到 QHBoxLayout。甚至可能吗?我是在 Qt Designer 中而不是通过编程方式完成的 【参考方案1】:

可以使用QMenuBar::setCornerWidget 将小部件添加到菜单栏的末尾。

【讨论】:

这正是我想要的。谢谢你。我能够使用 QMovie::setScaledSize 更改 QMovie 的大小

以上是关于如何将 QWidget 添加到 QMenuBar?的主要内容,如果未能解决你的问题,请参考以下文章

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

在QMainwindow在对菜单栏以及工具栏的操作

如何将菜单添加到从 Qwidget 派生的小部件

如何将 QWidget 添加到 QGLWidget

QStackedWidget 将 QActions 连接到 QWidget 的自定义 QGraphicsView

将 QWidget 或其他 QWidget 派生控件添加到 QWindow