Qt Designer中能否为QToolBar添加QToolButton或QMenu作为动作?
在Qt Designer中为QToolBar添加带子菜单的动作的方法
方法一:直接为动作创建子菜单(纯Designer操作)
- 打开Qt Designer,选中目标
QToolBar,在动作编辑器中创建一个主动作(例如命名为action_Main_Menu)。 - 右键点击该主动作,选择
Create Submenu——此时动作旁会出现下拉箭头标识,说明已关联子菜单。 - 双击子菜单区域,或右键选择
Add Action,即可为子菜单添加新动作(可选择已有动作或新建动作)。 - 在属性编辑器中调整主动作、子动作的图标、文本等属性,保存UI文件后,编译运行就能看到QToolBar上带下拉子菜单的动作。
方法二:将QToolButton嵌入QToolBar(支持更自定义的控件)
如果需要直接使用QToolButton并关联菜单:
- 先在
QToolBar上添加一个普通动作,右键点击该动作,选择Change action to widget,动作会转为占位控件。 - 右键点击这个占位控件,选择
Promote to...,在弹出窗口中输入类名QToolButton,头文件QToolButton,点击Add后选择Promote,将控件提升为QToolButton。 - 在对象树中右键添加一个
QMenu,回到QToolButton的属性编辑器,找到menu属性,将其关联到刚创建的QMenu。 - 为QMenu添加子动作,调整QToolButton的
toolButtonStyle等属性,实现自定义的带菜单按钮效果。
补充说明
如果需要更复杂的交互逻辑(比如动态生成菜单),还是需要结合代码实现,但上述两种方法完全在Qt Designer内操作,足以满足静态子菜单的需求。
内容的提问来源于stack exchange,提问作者Chris P
相关产品推荐
相关产品推荐

