标准对话框

来源:互联网 发布:国泰君安快期交易软件 编辑:程序博客网 时间:2024/05/01 05:37

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();}

效果



0 0
原创粉丝点击