最近要用Qt写个小工具,其中需要实现Qt对话框上的菜单效果:
网上相关的例子不少,不过基本上都是通过代码来实现的,基本步骤是:
- 先new一堆的QAction
- 再new一堆的QMenu并按照菜单的层次组织好
- 最后还要写一堆的connect,将action和响应函数关联好
看看我这里的这么多菜单项,如果全用代码来实现,这不要累死个人吗?于是想到了用Qt Creator来解决问题。
不幸的是,基于QDialog的ui是无法配置菜单的,只有基于QMainWindow的ui才能配置菜单:
不知道为什么Qt Creator的组件工具箱中也没有菜单这个组件。那该怎么玩?好在Qt的ui说到底不过就是一个xml文件,我直接用Qt Creator搞不定的,我还不能直接编辑xml文件吗?
那就来试一试吧,先创建一个基于QMainWindow的ui,然后在这里组织和编辑各个菜单项,工具自动的生成了相应的action,这很不错。
然后保存。打开ui文本,将其中和菜单、action相关的xml拷贝出来:
<span style="color:#FF0000;"> <widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0&