1、模态对话框和非模态对话框
connect(ui->actionnew,&QAction::triggered,this,[=](){ // //模态对话框,不可以对其他窗口进行操作 // QDialog dia(this); // dia.resize(200,100); // dia.exec(); // qDebug()<<"模态对话框"; //非模态对话框 QDialog *dia1=new QDialog(this); //防止一闪而过,建立在堆区 dia1->resize(200,100); dia1->setAttribute(Qt::WA_DeleteOnClose); //这句话意思是当关闭这个对话框会释放dia1 dia1->show(); qDebug()<<"非模态对话框"; });
2、消息对话框,下面几个都是模态对话框
//消息对话框 //错误对话框,模态 //QMessageBox::critical(this,"error","错误"); //提示信息对话框,模态 //QMessageBox::information(this,"information","提示信息!"); //提问对话框 QMessageBox::StandardButton sb=QMessageBox::question(this,"question","请选择",QMessageBox::Open|QMessageBox::Ok| QMessageBox::Discard,QMessageBox::Discard); if(sb==QMessageBox::Open) { qDebug()<<"选择的是打开!"; } else if(sb==QMessageBox::Ok) { qDebug()<<"选择的是OK!"; } else { qDebug()<<"选择的是discard!"; } //警告对话框 //QMessageBox::warning(this,"warning","警告",QMessageBox::Retry);
3、其他标准对话框
//其他标准对话框 //颜色对话框 QColor color=QColorDialog::getColor(QColor(0,0,255)); qDebug()<<color.red()<<color.green()<<color.blue(); //文件对话框 //参数3:打开的路径 参数4:过滤的文件类型 QString s=QFileDialog::getOpenFileName(this,"文件","D:\\桌面","(*.txt)"); qDebug()<<s.toUtf8().data(); //字体对话框 bool flag; QFont font=QFontDialog::getFont(&flag,QFont("华文彩云",36)); qDebug()<<"字体:"<< font.family().toUtf8().data()<<"字号:"<< font.pointSize()<< "是否加粗:"<< font.bold()<<"是否倾斜:"<< font.italic();