标准对话框

Qt提供了一些标准对话框,全部继承自QDialog类,并增加了自己的特点。

下面都是一些简单的demo演示,实际使用再详细学习。

1.QColorDialog 颜色对话框

Dialog widget for specifying colors。

在之前使用的代码,将槽函数进行修改。

void MainWindow::on_PushButton_clicked()
{
    QColor c = QColorDialog::getColor(Qt::red,//设置初始颜色,默认是白色
                                      this,//设置其父对话框
                                      "颜色");//对话框标题
    qDebug()<<"颜色:"<<c;
}
点击按钮后,会弹出如下对话框

随便选取一个颜色,点击确定,会输出如下内容

颜色: QColor(ARGB 1, 1, 1, 1)

2.QFileDialog 文件对话框

它可以让用户选取一个文件夹或文件。

void MainWindow::on_PushButton_clicked()
{
    //文件对话框
    QStringList file_name = QFileDialog::getOpenFileNames();
    qDebug()<<"file path:"<<file_name;
}
执行效果




相应的输出为:

file path: ("F:/QT/Demo/build-demo-Desktop_Qt_5_7_0_MSVC2013_64bit-Debug/Makefile", "F:/QT/Demo/build-demo-Desktop_Qt_5_7_0_MSVC2013_64bit-Debug/Makefile.Debug", "F:/QT/Demo/build-demo-Desktop_Qt_5_7_0_MSVC2013_64bit-Debug/Makefile.Release", "F:/QT/Demo/build-demo-Desktop_Qt_5_7_0_MSVC2013_64bit-Debug/ui_mainwindow.h")

3.QFontDialog 字体窗口对话窗

提供了选择一个字体,即可获取字体

void MainWindow::on_PushButton_clicked()
{
    //字体对话框
    bool ok;
    QFont font = QFontDialog::getFont(&ok);
    if(ok)
    {
        qDebug()<<"字体"<<font;
    }
}

效果

输出:

字体 QFont( "Agency FB,22,-1,5,75,1,0,0,0,0" )

4.QInputDialog输入对话框

获取输入的文本,整型,浮点型等

void MainWindow::on_PushButton_clicked()
{
//输入对话框
    bool ok;
    QString s = QInputDialog::getText(this,
                                      "文字",
                                      "输入",
                                      QLineEdit::Normal,
                                      "admin",
                                      &ok);
    qDebug()<<"文字输入:"<<s;

    QStringList items;
    items.append("item1");
    items.append("item2");

    QString item = QInputDialog::getItem(this,
                                         "dialog",
                                         "input",
                                         items,
                                         0,
                                         true,
                                         &ok);
    qDebug()<<"条目输入:"<<item;
}

效果:


输出:

文字输入: "admin"
条目输入: "item1"

5.QMessageBox 消息对话框

可以向用户通知一些信息,也可以让用户执行一些选择。

void MainWindow::on_PushButton_clicked()
{
    //消息对话框
        //问题对话框
    int msg1 = QMessageBox::question(this,
                                     "question",
                                     "Do you like xiaomi?",
                                     QMessageBox::Yes,
                                     QMessageBox::No
                                     );
    if(msg1 == QMessageBox::Yes)
        qDebug()<<"yes";

        //消息提示对话框
    int msg2 = QMessageBox::information(this,
                                        "info",
                                        "you like xiaomi");

        //警告对话框
    int msg3 = QMessageBox::warning(this,
                                    "warning",
                                    "xiaomi is a good company",
                                    QMessageBox::Abort);

        //错误对话框
    int msg4 = QMessageBox::critical(this,
                                     "error",
                                     "you can not dislike xiaomi"
                                     );
        //关于对话框
    QMessageBox::about(this,
                       "about",
                       "xiaomi6 is a great phone!");


}
分别的效果


6.QProgressDialog 进度对话框

对一个可能耗时较长的操作的一个进度显示对话框。
void MainWindow::on_PushButton_clicked()
{
   QProgressDialog progress("进度",
                             "取消",
                             0,50000,
                             this);
    progress.setWindowTitle("进度");
    progress.setWindowModality(Qt::WindowModal);
    progress.show();
    for(int i=0;i<=50000;i++)
    {
        progress.setValue(i);
        QCoreApplication::processEvents();
    }
}
进行一个模拟操作。
效果


7.QErrorMessage 错误消息对话框

void MainWindow::on_PushButton_clicked()
{
    //错误消息对话框
    QErrorMessage *errorDialog = new QErrorMessage();
    errorDialog->setWindowTitle("error dialog");
    errorDialog->showMessage("error!!");
}

效果

可以看到相比QMessageBox的错误消息对话框,多出了一个提示信息


8.QWizardpage 向导对话框

它相比上面的那些对话框多了很多东西,首先QWizard是一个框架,它包含了设计向导的所有函数,可以用它来实现想要的效果。

void MainWindow::on_PushButton_clicked()
{
    //向导对话框
    QWizardPage *p1 = new QWizardPage();
    p1->setTitle("p1");
    QWizardPage *p2 = new QWizardPage();
    p2->setTitle("p2");
    QWizardPage *p3 = new QWizardPage();
    p3->setTitle("p3");
    QWizardPage *p4 = new QWizardPage();
    p4->setTitle("p4");

    QWizard w;
    w.setWindowTitle("向导");
    w.addPage(p1);
    w.addPage(p2);
    w.addPage(p3);
    w.addPage(p4);
    w.exec();
}

效果



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值