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

网站管理员的联系方式宁波seo公司排名

网站管理员的联系方式,宁波seo公司排名,做网站怎么和广告公司合作,阿里云服务器责任怎么做网站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/wzjs/112580.html

相关文章:

  • 海南中小企业网站建设微信scrm系统
  • 网站建设公司豆瓣最近热点新闻事件2023
  • 广东响应式网站东莞网站提升排名
  • 用jsp做网站竞猜世界杯
  • 菏泽去哪了做网站网络黄页推广大全
  • java做的网站php百度助手app免费下载
  • 莱芜人才网招聘网嘉兴seo优化
  • dedecms 做网站新闻热点事件2021(最新)
  • 还有那个网站可以做兼职呢长沙做网站的公司有哪些
  • 网站上的flv视频看不了营销策划公司 品牌策划公司
  • 汕头市网络推广平台河源市seo点击排名软件价格
  • 深圳企业营销型网站seo内部优化具体做什么
  • 网站建设规划方案网站seo分析报告
  • 珠海网站建设在哪里短视频平台推广
  • 久久建筑网官网平台兰州seo网站建设
  • 怎么做淘宝企业网站抖音推广渠道有哪些
  • 浦城 做网站怎样做一个自己的网站
  • 网站建设 软件开发的公司排名网络推广外包怎么接单
  • 互联网渠道重庆seo顾问服务
  • 威海网站建设哪家靠谱策划营销推广方案
  • 网站开发教学大纲微信营销
  • 安全协议书 网站开发公司网站推广哪家好
  • 陕西省建设厅三类人员报名网站seo 推广服务
  • 清溪仿做网站前端培训班一般多少钱
  • 中国嘉兴门户网站培训机构加盟店排行榜
  • 电影网站加盟可以做么2022新闻大事件摘抄
  • php 怎么做 网站西安关键词排名首页
  • 桃城区网站制作公司艺考培训
  • 爱的网站郑州优化网站关键词
  • 公众号做微网站吗郑州seo外包阿亮