QT---对话框QDialog

目录

一、QDialog的基本概念

二、自定义QDialog对话框

1、模态对话框

2、非模态对话框

三、标准对话框

四、文件夹对话框

 1、设置有关窗口大小

2、设置按钮“转到槽”

五、总结


一、QDialog的基本概念

对话框分为模态对话框和非模态对话框。

模态对话框:打开当前对话框后,在不关闭该对话框时,无法操作其他界面。

非模态对话框:打开当前对话框后,在不关闭该对话框时,也可以操作其他界面。

二、自定义QDialog对话框

  • 使用QDialog: :exec()---实现应用程序级别的模态对话框。
  • 使用QDialog: : open() ---实现窗口级别的模态对话框。
  • 使用 QDialog: : show()---实现非模态对话框。

1、模态对话框

 

    QDialog BL;//定义一个变量BL
    BL.setWindowTitle(tr("第一个对话框"));//设置标题文本
    BL.exec();//设置为应用程序级别的模态对话框

QDialog: : open()的对话框(同下非模态对话框)

    QDialog *BL1=new QDialog;//特别注意,需使用堆,而不是栈
    BL1->setAttribute(Qt::WA_DeleteOnClose);//自动销毁
    BL1->setWindowTitle("第二个对话框");
    BL1->open();

2、非模态对话框

注意:
1、对话框创建要在堆创建
2、由于对话框的特性,可以设置对话框关闭,自动销毁对话框。
 

否则,程序将一闪而过并非停留在页面上

    QDialog *BL2=new QDialog;//特别注意,需使用堆,而不是栈
    BL2->setAttribute(Qt::WA_DeleteOnClose);//自动销毁
    BL2->setWindowTitle("第三个对话框");
    BL2->show();

三、标准对话框

Qt 的内置对话框大致分为以下几类:

  1. QColorDialog------选择颜色;
  2. QFileDialog------选择文件或者目录;
  3. QFontDialog------选择字体;
  4. QInputDialog------允许用户输入一个值,并将其值返回;
  5. QMessageBoX------模态对话框,用于显示信息、询问问题等;
  6. QPageSetupDialog------为打印机提供纸张相关的选项;
  7. QPrintDialog------打印机配置;
  8. QPrintPreviewDialog------打印预览;
  9. QProgressDialog------显示操作过程。

四、文件夹对话框

 1、设置有关窗口大小

    setFixedSize(800,600);//设置窗口固定大小

    ui->setupUi(this);

    ui->pushButton->setFixedSize(250,50);//设置按钮固定大小
    ui->pushButton_2->setFixedSize(250,50);
    ui->plainTextEdit->setFixedSize(300,300);

2、设置按钮“转到槽”

void Dialog::on_pushButton_clicked()
{
    QString fileName = QFileDialog::getOpenFileName(this, tr("打开文件"),"./","Images (*.png *.xpm *.jpg*.jpeg)");
    if (!fileName.isEmpty())
    ui->plainTextEdit->appendPlainText(fileName);

}



void Dialog::on_pushButton_2_clicked()
{

    QStringList files = QFileDialog::getOpenFileNames(this, "选择打开多个文件", "./","Images (*.png *.xpm *.jpg)");
    for (int i = 0;i<files.count();i++)
    {
          // qDebug()<<files.at(i);//使用for循环,依次打印文件路径
        ui->plainTextEdit->appendPlainText(files.at(i));//将打印输出到文本框内
    }


}

五、总结


1、文件对话框使用,参考帮助文档。

2、getOpenFileName,getOpenFileNames参数包括以下四类,依次为:

父类对象指针,文件对话框的标题,打开文件路径,文件过滤器

3、文件过滤器写法:

"Images (*.png *.xpm *.jpg)" //单个过滤时

"Images (*.png *.xpm *.jpg);;Text (*.txt)"//多个过滤时

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值