视频教程:https://www.bilibili.com/video/av51766541/?p=20
#include "win.h" #include <QMenuBar> #include <QToolBar> #include <QDebug> #include <QDialog> //对话框类 Win::Win(QWidget *parent) : QMainWindow(parent) { this->resize(500,400); QMenuBar* bar=menuBar(); this->setMenuBar(bar); QMenu* fileMenu=bar->addMenu("文件"); QMenu* editMenu=bar->addMenu("编辑"); QAction* newAction=fileMenu->addAction("新建"); QAction* openAction=fileMenu->addAction("打开"); QToolBar* toolbar=new QToolBar(this); addToolBar(Qt::LeftToolBarArea,toolbar); toolbar->addAction(newAction); toolbar->addAction(openAction); connect(newAction,&QAction::triggered,this,[=](){ //QDialog dlg(this); //创建一个对话框 //dlg.exec();//显示对话框--模态---阻塞 QDialog* dlg=new QDialog(this);//创建一个对话框
dlg->show();//显示对话框--非模态---非阻塞
//注意:QDialog dlg(this)创建的dlg,lambda函数结束,dlg也就自动销毁了,所以一闪而过 //采用了new方法 dlg->setAttribute(Qt::WA_DeleteOnClose);//设置对话框属性 //Qt::WA_DeleteOnClose 窗口关闭时,dlg对象随之销毁 qDebug()<<"点击了行为按钮"; }); } Win::~Win() { }