XuSenfeng

个人站

复读了,更新随缘,有的文件不全或者图片缺失具体看我的笔记库(https://github.com/XuSenfeng/note)


对话框

目录

对话框

    //点击新建弹出一个对话框
    connect(ui->actionnew, &QAction::triggered, [=](){
        //对话框
        //模态和非模态
        //模态就是对话框出现的时候不可以对其他窗口进行操作,会进行阻塞
//        QDialog dlg(this);
//        dlg.resize(100,75);
//        dlg.exec();
//        qDebug() << "模态对话框弹出" << endl;
        //非模态对话框
        QDialog *dlg2 = new QDialog(this);
        //出现的问题,产生的对话框没有及时的释放掉
        //解决
        dlg2->setAttribute(Qt::WA_DeleteOnClose);
        
        dlg2->show();
    });

标准对话框

Qt内部内置了一系列的对话框

QColorDialog: 选择颜色

QFileDialog: 选择文件

QFontDialog: 选择字体

QInputDialog: 允许输入一个值, 并进行返回

QMessageBox: 模拟对话框, 用于显示信息

QPageSetupDialog: 打印机相关的选项

QPrintDialog: 打印机配置

QPrintPreviewDialog: 打印浏览

QProgressDialog: 显示操作过程

  • QMessageBox对话框

有四种, critical, information, question, warning

    //点击新建弹出一个对话框
    connect(ui->actionnew, &QAction::triggered, [=](){
        //对话框
        //模态和非模态
        //模态就是不可以对其他窗口进行操作,会进行阻塞
//        QDialog dlg(this);
//        dlg.resize(100,75);
//        dlg.exec();
//        qDebug() << "模态对话框弹出" << endl;
        //非模态对话框
//        QDialog *dlg2 = new QDialog(this);
//        //出现的问题,产生的对话框没有及时的释放掉
//        //解决
//        dlg2->setAttribute(Qt::WA_DeleteOnClose);

//        dlg2->show();

        //消息对话框
        //错误对话框, 参数:父类,对话框头部,对话框信息
        //QMessageBox::critical(this, "critical", "错误");
        //信息对话框
        //QMessageBox::information(this, "information", "信息");
        //提问对话框,多出来的参数信息:出现的按钮,默认使用的按钮(关联回车), 返回值:用户选择信息
        if(QMessageBox::Save == QMessageBox::question(this, "quesation", "提问", (QMessageBox::Save|QMessageBox::Cancel), QMessageBox::Cancel))
        {
            qDebug() << "信息已经保存"<<endl;
        }else
        {
            qDebug() << "信息取消保存"<<endl;

        }

        QMessageBox::warning(this, "warning", "错误");
  • 其他对话框
        //颜色对话框
//        QColor color  = QColorDialog::getColor(QColor(255, 0, 0));
//        qDebug() << "r = " <<color.red()<< "g = "<<color.green()<<"b = "<<color.blue()<<endl;

        //文件对话框
        //qDebug() << QFileDialog::getOpenFileName(this, "打开文件", "/home/jiao", "(*.c)") << endl;
        bool flag;
        //参数: ,字体的类型,字体的大小
        QFont font= QFontDialog::getFont(&flag, QFont("", 24));
        qDebug() << "字体" << font.family() << "字号:" <<font.pointSize() <<"是否加粗:" <<font.bold() << "是否倾斜: " << font.italic();