当前位置: 首页 > news >正文

长春阿凡达网站建设网站的结构类型

长春阿凡达网站建设,网站的结构类型,深圳网站建设制作视频软件,网站备案的核验单Qt 入门 4 之标准对话框 Qt提供了一些常用的对话框类型,它们全部继承自QDialog类,并增加了自己的特色功能,比如获取颜色、显示特定信息等。下面简单讲解这些对话框,可以在帮助索引中查看Standard Dialogs关键字,也可以直接索引相关类的类名。 本文将以一个新的项目为主介绍不…

Qt 入门 4 之标准对话框

Qt提供了一些常用的对话框类型,它们全部继承自QDialog类,并增加了自己的特色功能,比如获取颜色、显示特定信息等。下面简单讲解这些对话框,可以在帮助索引中查看Standard Dialogs关键字,也可以直接索引相关类的类名。

  • 本文将以一个新的项目为主介绍不同类型的对话框,新建Qt Widgets 应用程序,双击ui文件后添加按钮并修改文字显示:
    在这里插入图片描述
    在这里插入图片描述
  1. 颜色对话框
  • 颜色对话框 QColorDialog 提供了一个可以获取指定颜色的对话框部件
  • 设计模式下点击.ui文件,选中颜色对话框按钮,右键转到槽选中clicked() 后进入函数定义并修改如下:
void MyWidget::on_pushButton_clicked()
{QColor color=QColorDialog::getColor(Qt::red,this,tr("颜色对话框"));qDebug()<<"color:"<<color;
}
  • 编译执行如下图,这里使用了 QColorDialog的静态函数getColor()来获取颜色,它的3个参数的作用分别是:设置初始颜色、指定父窗口和设置对话框标题。这里的Qt::red是Qt预定义的颜色对象,可以直接单击该字符串,然后按下F1查看其快捷帮助,或者在帮助索引中通过 Qt::GlobalColor 关键字,从而查看到所有的预定义颜色列表。**getColor()**函数返回一个 QColor类型数据。现在运行程序,然后单击“颜色对话框”按钮,如果不选择颜色,直接单击 OK,那么输出信息应该是QColor(ARGB1,1,0,0),这里的4个数值分别代表透明度(alpha)、红色(red)、绿色(green)和蓝色(blue)。它们的数值都是从0.0-1.0,有效数字为6位。对于alpha来说,1.0表示完全不透明,这是默认值,而0.0表示完全透明。对于三基色红、绿、蓝的数值,还可以使用0-255来表示,颜色对话框中就是使用这种方法。其中,0表示颜色最浅,255表示颜色最深。在0-255与0.0-1.0之间可以通过简单的数学运算来对应,其中0对应0.0,255对应1.0。
    在这里插入图片描述

  • 在颜色对话框中还可以添加对alpha的设置,就是在**getColor()**函数中再使用最后一个参数:

QColor color=QColorDialog::getColor(Qt::red,this,tr("颜色对话框"),QColorDialog::ShowAlphaChannel);
qDebug()<<"color:"<<color;
  • 前边使用了QColorDialog 类的静态函数来直接显示颜色对话框,好处是不用创建对象,但是如果想要更灵活的设置,则可以先创建对象,然后进行各项设置:
void MyWidget::on_pushButton_clicked()
{QColorDialog dialog(Qt::red,this);    //创建对象dialog.setOption(QColorDialog::ShowAlphaChannel);dialog.exec(); //以模态方式运行对话框QColor color=dialog.currentColor();qDebug()<<"color:"<<color;
}

2.文件对话框

  • 文件对话框QFileDialog类提供了一个允许用户选择文件或文件夹的对话框。继续在 mywidget.cpp中添加#include<QFileDialog>头文件,然后从设计模式转到“文件对话框”按钮的单击信号槽,并更改如下:
void MyWidget::on_pushButton_5_clicked()
{//将会打开默认盘中的后缀文件QString filename=QFileDialog::getOpenFileName(this,tr("文件对话框"),"D:",tr("图片文件(*png*jpg"));qDebug()<<"fileName:"<<filename;
}
  • 这里使用了 QFileDialog类中的**getOpenFileName()**函数来获取选择的文件名,它的4个参数的作用分别是:指定父窗口设置对话框标题、指定默认打开的目录路径和设置文件类型过滤器。这个函数会以模态方式运行一个文件对话框。打开后选择一个文件,单击“打开”按钮后,这个函数便可以返回选择的文件的文件名。如果不指定文件过滤器,则默认选择所有类型的文件。这里指定了只选择png和jpg两种格式的图片
  • 也支持同时选择其他类型的文件:
 QString filename=QFileDialog::getOpenFileName(this,tr("文件对话框"),"D:",tr("图片文件(*png*jpg);;文本文件(*txt)"));

在这里插入图片描述

  • 前边只支持选择单个文件,要同时选择多个文件,则可以使用getOpenFileNames()函数:
   QStringList filenames=QFileDialog::getOpenFileNames(this,tr("文件对话框"),"F:",tr("图片文件(*png,jpg"));
  • 运行程序就可以同时选择多个图片文件了,多个文件名存放在QStringList类型变量中。当然也可以不使用这些静态函数,而是建立对话框对象来操作。除了上面的两个函数外,QFileDialog类还提供了getSaveFileName()函数来实现保存文件对话框和文件另存为对话框,还有getExistingDirectory()函数来获取一个已存在的文件夹路径。因为它们的用法与上面的例子类似,这里就不再举例。
  1. 字体对话框
  • 字体对话框QFontDialog类提供了一个可以选择字体的对话框部件。先添加#include <QFontDialog>头文件,然后转到“字体对话框”按钮的单击信号槽,更改如下:
void MyWidget::on_pushButton_2_clicked()
{//ok用于标记是否单击了 OK 按钮bool ok;QFont font=QFontDialog::getFont(&ok,this);//如果单击OK按钮,那么让“字体对话框”按钮使用新字体//如果单击Cancel按钮,那么输出信息if(ok)ui->pushButton_2->setFont(font);elseqDebug()<<tr("没有选择字体!");
}

在这里插入图片描述

  • 这里使用了QFileDialog类的 getFont() 静态函数来获取选择的字体。这个函数的第一个参数是bool类型变量,用来存放按下的按钮状态,比如在打开的字体对话框中单击了OK按钮,那么这里的ok就为true,这样来告诉程序已经选择了字体,如下图是选择了微软雅黑 14号字体的显示结果:
    在这里插入图片描述
  1. 输入对话框
  • 输入对话框 QInputDialog类用来提供一个对话框,可以让用户输入一个单一的数值或字符串。先添加头文件#include <QInputDialog>,然后进入“输人对话框”按钮的单击信号槽,更改如下:
void MyWidget::on_pushButton_6_clicked()
{bool ok;//获取字符串QString string = QInputDialog::getText(this,tr("输入字符串对话框"),tr("请输入用户名"),QLineEdit::Normal,tr("admin"),&ok);if(ok)qDebug()<<"string:"<<string;//获取整数int value = QInputDialog::getInt(this,tr("输入整数对话框"),tr("请输入-1000到1000之间的数值"),100,-1000,1000,10,&ok);if(ok)qDebug()<<"value:"<<value;//获取浮点数double value2=QInputDialog::getDouble(this,tr("输入浮点数对话框"),tr("请输入-1000到1000之间的数值"),0.00,-1000,1000,2,&ok);if(ok)qDebug()<<"value2:"<<value2;QStringList items;items<<tr("条目1")<<tr("条目2");//获取条目QString item=QInputDialog::getItem(this,tr("输入条目对话框"),tr("请选择或输入一个条目"),items,0,true,&ok);if(ok)qDebug()<<"item:"<<item;
}
  • 分别使用不同的函数定义了输入不同类型的对话框,运行如下:
    在这里插入图片描述
  1. 消息对话框
  • 消息对话框QMessageBox类提供了一个模态的对话框来通知用户一些信息,或者向用户提出一个问题并且获取答案。先添加头文件#include,然后转到“消息对话框”按钮的单击信号槽中,添加如下代码:
void MyWidget::on_pushButton_3_clicked()
{//问题对话框int ret1 = QMessageBox::question(this,tr("问题对话框"),tr("你了解Qt吗?"),QMessageBox::Yes,QMessageBox::No);if(ret1 == QMessageBox::Yes)qDebug()<<tr("问题!");//提示对话框int ret2 = QMessageBox::information(this,tr("提示对话框"),tr("这是Qt书籍!"),QMessageBox::Ok);if(ret2 == QMessageBox::Ok)qDebug()<<tr("提示!");//警告对话框int ret3 = QMessageBox::warning(this,tr("警告对话框"),tr("不能提前结束!"),QMessageBox::Yes,QMessageBox::No);if(ret3 == QMessageBox::Abort)qDebug()<<tr("警告!");//错误对话框int ret4 = QMessageBox::critical(this,tr("严重错误对话框"),tr("发现一个严重错误!"),QMessageBox::Yes,QMessageBox::No);if(ret4 == QMessageBox::YesAll)qDebug()<<tr("错误!");//关于对话框QMessageBox::about(this,tr("关于对话框"),tr("Qt Creator 普及工作!"));
}

在这里插入图片描述

  1. 进度对话框
  • 进度对话框 QProgressDialog对一个耗时较长操作的进度提供了反馈。先添加#include <QProgressDialog>头文件,然后转到“进度对话框”按钮的单击信号槽,更改如下:
void MyWidget::on_pushButton_7_clicked()
{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();  //避免界面冻结//QThread::sleep(1);if(dialog.wasCanceled())break;}dialog.setValue(50000);    //这样才显示100%,因为for循环中少加了一个数qDebug()<<tr("复制结束!");
}

在这里插入图片描述

  1. 错误信息对话框
  • 错误信息对话框QErrorMessage类提供了一个显示错误信息的对话框。首先打开mywidget.h文件添加类前置声明:
class QErrorMessage;
  • 然后添加私有对象:
ErrorMessage *errordlg;
  • 下面到mywidget.cpp添加头文件#include <QErrorMessage>,并在构造函数中添加如下代码:
errordlg=newQErrorMessage(this);
  • 然后从设计模式转到“错误信息对话框”按钮的单击信号槽添加代码
void Mywidget::on pushButton 7 clicked()
{errordlg->setwindowTitle(tr("错误信息对话框"));errordlg->showMessage(tr("这里是出错信息!));
}
  • 运行如下:
    在这里插入图片描述
  1. 向导对话框
  • 向导对话框QWizard类提供了一个设计向导界面的框架。对于向导对话框,读者应该已经很熟悉了,比如安装软件时的向导和创建项目时的向导。QWizard之所以被称为框架,是因为它具有设计一个向导全部的功能函数,可以使用它来实现想要的效果。Qt中包含了 Trivial Wizard、License Wizard和Class Wizard这3个示例程序,可以参考一下。
  • 打开 mywidget.h文件,然后添加头文件#include <QWizard>,在MyWidget 类的声明中添加private类型函数声明:
  QWizardPage* createPage1();QWizardPage* createPage2();QWizardPage* createPage3();
  • 这里声明了3个返回值为QWizardPage类对象的指针函数,用来生成3个向导页面。然后在mywidget.cpp文件中对这3个函数进行定义:
QWizardPage* MyWidget::createPage1()
{QWizardPage* page=new QWizardPage;page->setTitle(tr("介绍"));return page;
}
QWizardPage* MyWidget::createPage2()
{QWizardPage* page=new QWizardPage;page->setTitle(tr("用户选择信息"));return page;
}
QWizardPage* MyWidget::createPage3()
{QWizardPage* page=new QWizardPage;page->setTitle(tr("结束"));return page;
}
  • 在各个函数中分别新建了向导页面,并且设置了它们的标题。下面转到“向导对话框”按钮的单击信号槽中,更改如下:
void MyWidget::on_pushButton_8_clicked()
{QWizard wizard(this);wizard.setWindowTitle(tr("向导对话框"));wizard.addPage(createPage1());   //添加向导对话框wizard.addPage(createPage2());wizard.addPage(createPage3());wizard.exec();
}
  • 运行如下:

在这里插入图片描述

http://www.dtcms.com/a/602395.html

相关文章:

  • AI 生成PPT
  • 网站策划与运营沪指重上3000点
  • 动手学强化学习 第6章 Dyna-Q 算法
  • 【前端】resetFields()失效:点击编辑后再点击新增,弹出的表单是编辑的数据
  • 易支付系统二开对接博瑞云音箱教程及源码
  • TiDB 关联子查询去关联优化实战案例与原理深度解析
  • UCOS-III笔记(四)
  • 广西上林县住房城乡建设网站网站代码字体变大
  • 【窗口】分层角度来整体地理解 Android 窗口系统
  • 网站网页设计制作公司建立wordpress网站吗
  • CesiumJS 案例 P35:添加图片图层(添加图片数据)
  • 贞丰县住房和城乡建设局网站门户网站建设采购
  • Apache DolphinScheduler 新增 gRPC 任务插件 | 开源之夏成果总结
  • 网站数据迁移教程汕头快速建站模板
  • MATLAB中生成混淆矩阵
  • 基于MATLAB的验证码识别系统实现
  • 路由器怎么做网站百度下载
  • Spark简介以及K8S部署
  • 网站顶部图片素材官方网站建设条件
  • 高端电商网站建设上海频道网站建设公司
  • Ubuntu 中的编程语言(中)
  • 不确定知识图谱(UKGs)增强中医药大模型:药食同源个性化膳食推荐的智能化新突破
  • 有哪些适合自学口语的软件?
  • 算法1111
  • 大牌印花图案设计网站工信部怎么查网站备案
  • 做网站需要走哪些程序建筑模板制作过程
  • 《POE 免布线:100 平米机房以太网温湿度便捷部署方案》
  • 做优化网站是什么意思浏览器下载WordPress文件
  • 纯静态网站制作开发公司对代理公司管理
  • 龙海网站开发如何建立和设置公司网站