1.添加菜单
菜单栏由QMenuBar来管理,一行菜单栏只有一个QMenuBar,其所属的菜单均是QMenu构成。
QMenu *menu1 = new QMenu("文件(&F)");
QMenu *menu2 = new QMenu("编辑(&E)");
QMenu *menu3 = new QMenu("构建(&B)");
ui->menuBar->addMenu(menu1);
ui->menuBar->addMenu(menu2);
ui->menuBar->addMenu(menu3);
如图:
2.添加Action
添加action,就是添加对应菜单里面的选项
QList <QAction*> action1;
QAction *action1_1 = new QAction("打开");
QAction *action1_2 = new QAction("关闭");
QAction *action1_3 = new QAction("设置");
action1.append(action1_1);
action1.append(action1_2);
action1.append(action1_3);
menu1->addActions(action1);
效果:
添加Action的组,即QActionGroup,使得包含进去的action之间关系是矛盾的,即只能选其一。
QActionGroup *group2 = new QActionGroup(menu2);
QAction *action2_1 = new QAction("64bit");
action2_1->setCheckable(true);//按下后,会出现选中
QAction *action2_2 = new QAction("32bit");
action2_2->setCheckable(true);
QAction *action2_3 = new QAction("构建");
group2->addAction(action2_1);//加入组中
group2->addAction(action2_2);
menu2->addAction(action2_1);
menu2->addAction(action2_2);
menu2->addSeparator();//加入间隔符
menu2->addAction(action2_3);
效果:
64位,32位只能选中一个
3.添加子菜单
给菜单“文件”,添加“保存”选项,保存选项又分为“保存”和“另存为”。
QMenu *menu1_1 = new QMenu("保存",menu1);
QAction *action1_1_1 = new QAction("保存",menu1_1);
QAction *action1_1_2 = new QAction("另存",menu1_1);
menu1_1->addAction(action1_1_1);
menu1_1->addAction(action1_1_2);
menu1->addMenu(menu1_1);
效果: