重点的话写在前面:我们应该意识到,能点击后实时具体功能的是菜单项(和QAction相关),点击之后达到弹出菜单项的姑且称之为"菜单"(QMenu).
举例说明:
解说:
1.管理是Menu.
2.登陆,注销,退出是QAction.
3.二级是Menu.
因为管理是放在系统菜单栏上的,所以通过MenuBar()返回系统菜单指针进行添加,登陆,注销,退出是管理的菜单项,通过"管理"进行添加,二级也是管理中的一项,二级也是Menu."菜单"添加菜单项和添加Menu的函数不同而已.直接上代码解释就懂了.
adminMenu是个菜单指针:
adminMenu = menuBar()->addMenu(tr("管理"));//建立管理菜单
登陆,注销,退出:为QAction对象.
adminMenu->addAction(loginAction);//在管理菜单下加入登录行为
adminMenu->addAction(logoutAction);//在管理菜单下加入注销行为
adminMenu->addSeparator();//在管理菜单下加入一个分隔符
adminMenu->addAction(exitAction);//在管理菜单下加入退出
/* 分界线 自添加对菜单的研究 */
QMenu *myMen = adminMenu->addMenu(tr("二级"));
最后插入补充:
QAction类:
QAction类提供了一个可以同时出现在菜单和工具条上的抽象用户界面操作,QAction能够根据它添加的位置来改变自己的样子——如果添加到菜单中就会显示成菜单项(文件,工具,收藏等菜单项);如果添加到工具条,就会显示成一个按钮。
QAction类保存有关这个动作的信息,比如他的文本描述、图标、快捷键、回调函数等 。
QAction构造对象的时候会使用如下构造函数:
QAction(
const QString &text, QObject* parent);
它有两个参数,第一个text是这个动作的文本描述,用来显示文本信息,比如在菜单中的文本;第二个是parent,一般而言,我们通常传入this指针就可以了。我们不需要去关心这个parent参数具体是什么,它的作用是指明这个QAction的父组件,当这个父组件被销毁时,比如delete或者由系统自动销毁,与其相关联的这个QAction也会自动被销毁。