Qt-对话框

1.颜色对话框

    #include <QColorDialog>

    //1.调用静态函数的方式
    //QColor color = QColorDialog::getColor(Qt::red,this,tr("颜色对话框"));
    //最后一个参数在对话框中显示alpha的设置
    QColor color = QColorDialog::getColor(Qt::red,this,tr("颜色对话            
    框"),QColorDialog::ShowAlphaChannel);
    qDebug() << "color" << color;

    2.创建对象的方式
    QColorDialog dialog(Qt::red,this);
    dialog.setOption(QColorDialog::ShowAlphaChannel);
    dialog.exec();
    QColor color = dialog.currentColor();
    qDebug() << "color" << color;

    //两种方式调出来的对话框都是模态对话框

2.文件对话框

    #include <QFileDialog>

    //1.打开一个文件
    QString fileName = QFileDialog::getOpenFileName(this,tr("文件对话框"),"D:",tr("图片文件(*png *jpg)"));

    //2.设置多个不同类别的过滤器用两个分号“;;”隔开
    QString fileName = QFileDialog::getOpenFileName(
      this,tr("文件对话框"),"D:",tr("图片文件(*png *jpg);;文本文件(*txt)"));
    qDebug() << "fileName" << fileName;

    //3.同时选择多个文件
    QStringList fileNames = QFileDialog::getOpenFileNames(this,tr("文件对话框"),"F:",tr("图片文件(*png *jpg)"));
    qDebug() << "fileNames" << fileNames;
    
    //4.文件另存为
    [static] QString QFileDialog::getSaveFileName(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options())

    QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
                             "/home/jana/untitled.png",
                             tr("Images (*.png *.xpm *.jpg)"));

3.字体对话框

    #include <QFontDialog>

    //字体对话框
    bool ok;
    QFont font = QFontDialog::getFont(&ok,this);
    if(ok)
    {
        ui->pushButton_4->setFont(font);
    }
    else
    {
        qDebug() << tr("没有选中字体");
    }

4.输入对话框

    #include <QInputDialog>

    //输入对话框
    bool ok;
    //1.获取字符串
    QString string = QInputDialog::getText(this,tr("输入字符串对话框"),tr("请输入用户名:"),QLineEdit::Normal,tr("admin"),&ok);
    if(ok)
    {
        qDebug() << "string" << string;
    }
    //2.获取整数
    int value = QInputDialog::getInt(this,tr("输入整数对话框"),tr("请输-1000到1000之间的数值"),100,-1000,1000,10,&ok);
    if(ok)
    {
        qDebug() << "value:" << value;
    }
    //3.获取浮点数
    //4.获取条目
    QStringList items;
    items << tr("条目1") << tr("条目2");
    QString item = QInputDialog::getItem(this,tr("输入条目对话框"),tr("请选择或输入一个条目"),items,0,true,&ok);
    if(ok)
    {
        qDebug() << "item:" << item;
    }

5.消息对话框

    #include <QMessageBox>

    //1.问题对话框
    int ret1 = QMessageBox::question(this,tr("问题对话框"),tr("你了解qt吗?"),QMessageBox::Yes,QMessageBox::No);
    if(ret1 == QMessageBox::Yes)
    {
        qDebug() << tr("问题");
    }

    //2.提示对话框
    int ret2 = QMessageBox::information(this,tr("提示对话框"),tr("这是qt书籍!"),QMessageBox::Ok);
    if(ret2 == QMessageBox::Ok)
    {
        qDebug() << tr("提示");
    }

    //3.警告对话框
    int ret3 = QMessageBox::warning(this,tr("警告对话框"),tr("不能提前结束!"),QMessageBox::Abort);
    if(ret3 == QMessageBox::Abort)
    {
        qDebug() << tr("警告");
    }
    //4.错误对话框
    int ret4 = QMessageBox::warning(this,tr("错误对话框"),tr("发现一个严重错误"),QMessageBox::YesAll);
    if(ret4 == QMessageBox::YesAll)
    {
        qDebug() << tr("错误");
    }
    //5.关于对话框
    QMessageBox::about(this,tr("关于对话框"),tr("yafeilinux致力于"));

6.进度对话框

    #include <QProgressDialog>
    
    QProgressDialog dialog(tr("文件复制进度"),tr("取消"),0,50000,this);
    dialog.setWindowTitle(tr("进度对话框"));
    dialog.setWindowModality(Qt::WindowModal);  //设置窗口为模态
    dialog.show();
    for(int i = 0; i < 50000; i++)
    {
        dialog.setValue(i);
        QCoreApplication::processEvents();   //避免界面冻结
        if(dialog.wasCanceled())
            break;
    }
    dialog.setValue(50000);
    qDebug() << tr("复制结束");

7.错误信息对话框

#include <QErrorMessage>

//成员变量
QErrorMessage* errordlg;

//构造函数中
errordlg = new QErrorMessage(this);



errordlg->setWindowTitle(tr("错误信息对话框"));
errordlg->showMessage(tr("这里是出错信息!"));

8.向导对话框

#include <QWizard>

//private:
QWizardPage* createPage1();
QWizardPage* createPage2();
QWizardPage* createPage3();


QWizardPage *Widget::createPage1()
{
    QWizardPage* page = new QWizardPage;
    page->setTitle(tr("介绍"));
    return page;
}

QWizardPage *Widget::createPage2()
{
    QWizardPage* page = new QWizardPage;
    page->setTitle(tr("用户选择信息"));
    return page;
}

QWizardPage *Widget::createPage3()
{
    QWizardPage* page = new QWizardPage;
    page->setTitle(tr("结束"));
    return page;
}

    //使用
    QWizard wizard(this);
    wizard.setWindowTitle(tr("向导对话框"));
    wizard.addPage(createPage1());
    wizard.addPage(createPage2());
    wizard.addPage(createPage3());
    wizard.exec();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值