一.引言
当开发QT程序时使用了Widget框架时,无法为主页添加Menubar组件。

二.添加方法
原理:利用widget组件更改控件属性
具体实现:widget变更为QmenuBar
①QT Creatot添加Widget组件在UI顶部
②在QT的UI文件中强行将该widget的类型属性更改为QMenuBar(可使用记事本的方式打开)

③直接应用保存
三.QMenuBar快速应用
使用方式如下:
//添加菜单栏
//创建菜单
QMenu* menuFile = new QMenu("视图控制(&A)"); //添加快捷键 &+字母
QMenu* menuDeal = new QMenu("控制(&M)");
QMenu* menuDoc = new QMenu("说明(&G)");
//将菜单到菜单栏中
ui->menuBar->addMenu(menuFile);
ui->menuBar->addMenu(menuDeal);
ui->menuBar->addMenu(menuDoc);
//创建菜单项
QAction* actionDrawWithBc = new QAction("打开视图");
QAction* actionDrawNoBc = new QAction("去除曲线");
QAction* actionAlignWithBc = new QAction("添加曲线");
QAction* actionAlignNo = new QAction("关闭视图");
QAction* actionUpdateDocumentation = new QAction("更新说明");
//添加图标
// action3->setIcon(QIcon(":/save.png"));
//添加菜单项到菜单中
menuFile->addSeparator();
menuFile->addAction(actionDrawWithBc);
menuFile->addAction(actionDrawNoBc);
menuFile->addAction(actionAlignWithBc);
menuFile->addAction(actionAlignNo);
menuDoc->addAction(actionUpdateDocumentation);
//建立连接
connect(actionDrawWithBc,&QAction::triggered,this,[this]() { // 忽略原信号参数,直接传递固定值
this->on_action_switchDrawStaue(true);
});
connect(actionDrawNoBc,&QAction::triggered,this,[this]() { // 忽略原信号参数,直接传递固定值
this->on_action_switchDrawStaue(false);
});
connect(actionAlignWithBc,&QAction::triggered,this,[this]() { // 忽略原信号参数,直接传递固定值
this->on_action_switchAlignStaue(true);
});
connect(actionAlignNo,&QAction::triggered,this,[this]() { // 忽略原信号参数,直接传递固定值
this->on_action_switchAlignStaue(false);
});
connect(actionUpdateDocumentation,&QAction::triggered,this,&Widget::on_action_showHelpDocument);

1万+

被折叠的 条评论
为什么被折叠?



