Qt标准对话框:8大对话框详解

1、颜色选择对话框

颜色对话框类 QColorDialog 提供了一个可以获取指定颜色的对话框的对话框部件:

//添加头文件
#include 

//getColor的3个参数分别是:设置初始颜色、父窗口、和对话框标题
QColor color = QColorDialog::getColor(Qt::red, this, "Color dialog");
qDebug()<<"color"<

这里使用 QColorDialog 的静态函数 getColor () 来获取颜色,执行时弹出颜色选择对话框:

Qt标准对话框:8大对话框详解_第1张图片

返回的是一个 QColor 类型的数据:

这四个数值分别代表:透明度(alpha)、Red、Green、Blue。它们的默认值都是 0.0~1.0,有效数字为 6 位,对于 alpha 来说,1.0 表示完全不透明,0.0 表示完全透明。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

还可以通过创建对象的方式创建颜色对话框:

QColorDialog dialog(Qt::red,this);
dialog.setOption(QColorDialog::ShowAlphaChannel);
dialog.exec();
QColor color = dialog.currentColor();
qDebug()<<"color"<

效果与前面使用静态方法的一样。

二、字体对话框

字体对话框 QFontDialog 类提供了一个可以选择字体的对话框部件:

#include 

//ok is a sign to mark what you chosen(OK or Calcel)
bool ok;
QFont font = QFontDialog::getFont(&ok,this);
if(ok) {    //choose OK
    ui->pushButton_2->setFont(font);
} else {    //choose cancel
    qDebug()<<"Cancel";
}

这里通过静态函数来选择字体,如果在字体对话框中单击了 OK,那么 ok=true;如果单击了 Cancel,那么 ok=false。

Qt标准对话框:8大对话框详解_第2张图片

 

三、输入对话框

输入对话框 QInputDialog 类用来提供一个简单方便的对话框,从用户哪里去一个单一的数值或字符串。

//头文件
#include 


bool ok;
//gain stirng
//getText()参数:指定父窗口、设置窗口标题、设置对话框中的标签的显示文本、
//输入字符串的显示模式(例如密码显示小黑点)、设置输入框中的默认字符串,按钮信息
QString string = QInputDialog::getText(this, "Input string Dialog",
                     "please input user name:", QLineEdit::Normal,
                     "admin", &ok);
if(ok) {
    qDebug()<<"stirng:"<

显示如下:

Qt标准对话框:8大对话框详解_第3张图片

输入后,显示结果为:

四、进度对话框

进度对话框 QProgressDialog 对一个耗时较长的操作进度提供了反馈。

#include 

QProgressDialog dialog("copy progress", "Cancel", 0, 50000, this);
dialog.setWindowTitle("Progress Dialog");   //set window title
dialog.setWindowModality(Qt::WindowModal);  //set dialog modal
dialog.show();
//演示复制进度
for(int i = 0; i < 50000; ++i) {
    dialog.setValue(i);                 //设置进度条当前值
    QCoreApplication::processEvents();  //避免界面冻结
    if(dialog.wasCanceled()) {          //按下取消键则中断
        break;
    }
}
dialog.setValue(50000);     //显示100%
qDebug()<<"copy finish";

效果:

Qt标准对话框:8大对话框详解_第4张图片

 

五、错误信息对话框

QErrorMessage 类提供了一个显示错误信息的对话框:

#include 

QErrorMessage *dialog = new QErrorMessage(this);
dialog->setWindowTitle("Error mesage Dialog");
dialog->showMessage("This is error message.");

显示:

Qt标准对话框:8大对话框详解_第5张图片

 

五、文件对话框

5.1. 选择打开一个文件

文件对话框 QFileDialog 提供了一个用户选择文件或文件夹的对话框:

#include 

//getOpenFileName()函数用来获取选择的文件名,参数:指定父窗口、设置标题、默认打开目录、文件类型过滤器。
QString fileName = QFileDialog::getOpenFileName(this, "File Dialog",
                                                    "/home/daowm/", "Picture(* png * jpg)");
qDebug()<

运行程序显示:

Qt标准对话框:8大对话框详解_第6张图片

可以设置多个不同类别的过滤器,不同类别间使用两个分号 “;;” 隔开,例如:

QString fileName = QFileDialog::getOpenFileName(this, "File Dialog", "/home/daowm/",
                                                    "Picture(* png * jpg);;TextFile(* txt)");

5.2. 打开多个文件

可以使用 getOpenFileNames () 函数选择多个文件:

#include 

QStringList fileNames = QFileDialog::getOpenFileNames(this, "File Dialog", "/home/daowm/",
                                                    "Picture(* png * jpg);;TextFile(* txt)");
qDebug()<

得到的 fileNames 为:

 

5.3. 使用 getSaveFileName () 来实现保存文件对话框

5.4. 使用 ExistingDirectory () 函数来获取一个已存在的文件夹路径

六、消息对话框

QMessageBox 类提供一个模态对话框来通知用户一些信息,或者向用户提出一个问题并获取答案。

#include 


//question Dialog
int ret1 = QMessageBox::question(this, tr("Question Dialog"), tr("Do you know Qt?"),
                                 QMessageBox::Yes,QMessageBox::No);
if(ret1 == QMessageBox::Yes){
    qDebug()<

显示:

Qt标准对话框:8大对话框详解_第7张图片

 

七、向导对话框

QWizard 类提供了一个设计向导界面的框架。

//添加头文件
#include 


//在窗口的头文件中添加函数声明:
private:
    QWizardPage *createPage1();
    QWizardPage *createPage2();
    QWizardPage *createPage3();


//实现这三个函数
QWizardPage * Widget::createPage1()    //wizard page 1
{
    QWizardPage *page = new QWizardPage;
    page->setTitle(tr("Introduce"));
    return page;
}

QWizardPage * Widget::createPage2()   //wizard page 2
{
    QWizardPage *page = new QWizardPage;
    page->setTitle(tr("Select Information"));
    return page;
}

QWizardPage * Widget::createPage3()   //wizard page 3
{
    QWizardPage *page = new QWizardPage;
    page->setTitle(tr("Finish"));
    return page;
}


//执行向导
QWizard wizard(this);
wizard.setWindowTitle(tr("Wizard Dialog"));
wizard.addPage(createPage1());    //add wizard page
wizard.addPage(createPage2());
wizard.addPage(createPage3());
wizard.exec();

显示如下:

Qt标准对话框:8大对话框详解_第8张图片

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

你可能感兴趣的:(Qt开发,qt,ui,qt教程,qt开发,qt项目)