QT常用对话框的使用以及实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT常用对话框的使用以及实现相关的知识,希望对你有一定的参考价值。

      考虑的QT的对话框的内容颇多,很难记,而且使用起来往往相同的操作,所以将自己敲的各个常用对话框的使用方法上传。以下包含了颜色对话框、打开单个(多个)文件对话框,字体对话框、输入对话框、提示信息对话框、进度对话框、QErrorMessage对话框,以及向导对话框。

废话少说,直接上代码:


//颜色对话框

QColor color = QColorDialog::getcolor(Qt::red,this,tr("颜色对话框"));

//获取选择的颜色再去设置即可

//文件对话框

QString filename = QFileDialog::getOpenFileName(this,tr("文件对话框"),"F:",tr("图片文件(*png)"));//如果想要获取多个文件直接使用getOpenFileNames方法即可


//字体对话框

bool ok;

QFont font = QFontDialog::getFont(&ok,this);


//输入对话框

QString str = QInputDialog::getText(this,tr("输入字符串对话框"),tr("请输入用户名"),QLineEdit::Normal,tr("admin"),&ok);

if(ok)

qDebug()<<"Welcome";



int value = QInputDialog::getInt(this,tr("输入整数对话框"),tr("请输入0-1000的数值"),100,0,1000,10,&ok);

if(ok)

qDebug()<<"Welcome";




double value2 = QInputDialog::getDouble(this,tr("输入浮点数对话框"),tr("请输入0-1000的数值"),0.00,0,1000,2,&ok);

if(ok)

qDebug()<<"Welcome";



QStringList items;

items<<tr("条目1")<<tr("条目2");

QString item = QInputDialog::getItem(this,tr("输入条目对话框"),tr("请选择一个条目"),items,0,true,&ok);

if(ok)

qDebug()<<"Welcome";


//提示信息对话框

int res = QMessageBox::question(this,tr("问题对话框"),tr("nothing"),QMessageBox::Yes,QMessageBox::No);

if(res == QMessageBox::Yes)    //问题对话框

qDebug()<<"2333333";


int res1 = QMessageBox::information(this,tr("提示对话框"),tr("nothing"),QMessageBox::Ok);

if(res == QMessageBox::Ok)     //提示对话框

qDebug()<<"2333333";


int res3 = QMessageBox::warning(this,tr("警告对话框"),tr("nothing"),QMessageBox::Abort);

if(res == QMessageBox::Abort)

qDebug()<<"2333333"; //警告对话框

int res4 = QMessageBox::critical(this,tr("严重错误对话框"),tr("nothing"),QMessageBox::YesAll);

if(res == QMessageBox::YesAll)

qDebug()<<"2333333";

int res4 = QMessageBox::about(this,tr("关于对话框"),tr("nothing"),tr("like life,like Opensource"));


//进度对话框


 QProgressDialog dialog(tr("进度"),tr("Cancel"),0,50000,this);

    dialog.setWindowTitle("进度对话框");

    dialog.setWindowModality(Qt::WindowModal);

    dialog.show();

    for(int i = 0;i<=50000;i++){

        dialog.setValue(i);

        QCoreApplication::processEvents();

        if(dialog.wasCanceled())

            break;

    }

//用于弹出错误信息.内容详细,不仅仅只是一个提示。有别于QMessageBox内的子方法

QErrorMessage *dia = new QErrorMessage(this);

dia->setWindowTitle("Error");

dia->showMessage(tr("It‘t error"));


    QWizardPage *createPage1();

    QWizardPage *createPage2();

    QWizardPage *createPage3();

QWizardPage *MyWidget::createPage1()    //一定要注意,这个是基于Widget类的函数,在QMainwindow是不存在的

{

    QWizardPage *page = new QWizardPage;

    page->setTitle("介绍");

    return page;

}

QWizardPage *MyWidget::createPage2()

{

    QWizardPage *page = new QWizardPage;

    page->setTitle("用户选择信息");

    return page;

}

QWizardPage *MyWidget::createPage3()

{

    QWizardPage *page = new QWizardPage;

    page->setTitle("结束");

    return page;

}

    QWizard wizard(this);

    wizard.setWindowTitle("向导对话框");

    wizard.addPage(createPage1());

    wizard.addPage(createPage2());

    wizard.addPage(createPage3());

    wizard.exec();


希望能帮到各位,而且希望大家能将开源精神传播下去。Like life,like Opensource。

继续学习QT中。有资料会多多开源。


     

以上是关于QT常用对话框的使用以及实现的主要内容,如果未能解决你的问题,请参考以下文章

QT_5-QDialog

QT之创建登录对话框

QT的常用对话框的应用

7对话框

QT 一些非常常用的操作

QT之字体进度打印对话框