#include "mywidget.h"
#include "ui_mywidget.h"
#include <QDebug>
#include <QColorDialog>
#include <QFileDialog>
#include <QFontDialog>
#include <QInputDialog>
#include <QMessageBox>
#include <QProgressDialog>
#include <QErrorMessage>
#include <QWizard>
MyWidget::MyWidget(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MyWidget)
{
ui->setupUi(this);
errordlg=new QErrorMessage(this);
}
MyWidget::~MyWidget()
{
delete ui;
}
//颜色对话框
void MyWidget::on_pushButton_clicked()
{
//QColorDialog的静态函数getColor()来获取颜色
//4个参数:初始颜色,指定父窗口,设置对话框标题,显示alpha设置
//如果不选择颜色,直接点OK,返回的color: QColor(ARGB 1, 1, 0, 0)
//(透明度, 红色, 绿色, 蓝色) 它们的数值都是0.0~1.0,有效数字为6位
QColor color1=QColorDialog::getColor(Qt::red,this,tr("颜色对话框"), QColorDialog::ShowAlphaChannel);
qDebug()<<"color1: "<<color1;
//前面使用的方法直接显示颜色对话框,好处是不需要创建对象。但是如果想要更灵活的设置,则可以县创建对象,然后进行各项的设置:
QColorDialog dialog(Qt::red,this); //创建对象
dialog.setOption(QColorDialog::ShowAlphaChannel); //显示alpha选项
dialog.exec(); //以模态方式运行对话框
QColor color2=dialog.currentColor(); //获取当前颜色
qDebug()<<"color2: "<<color2; //输出颜色信息
}
//文件对话框
void MyWidget::on_pushButton_6_clicked()
{
//这里使用QFileDialog类中的getOpenFileName()函数来获取选择的文件名,这个函数会以模态的
//方式运行一个文件对话框。打开后选择一个文件,单击“打开”后,函数会返回选择的文件的文件名。
//4个参数分别是:指定父窗口,设置对话框标题,指定默认打开的目录路径,设置文件类型过滤器
//如果不指定文件过滤器,则默认选择所有类型的文件。
//*png *jpg之间需要空格
QString fileName=QFileDialog::getOpenFileName(this,tr("文件对话框"),"D:",tr("图片文件(*png *jpg)"));
qDebug()<<"fileName:"<<fileName;
//如果想选择多个文件,可以使用getOpenFileNames()
QStringList fileNames=QFileDialog::getOpenFileNames(this,tr("文件对话框"),"D:",tr("图片文件(*png *jpg)"));
qDebug()<<"fileNames:"<<fileNames;
//除此之外,QFileDialog类还提供了 getSaveFileName()函数来实现保存文件对话框和文件另存为对话框,
//还有 getExistingDirectory()函数来获取一个已存在的文件夹路径。
QFileDialog dialog(this);
QString filePath = dialog.getExistingDirectory();
qDebug()<<"filePath:"<<filePath;
}
//字体对话框
void MyWidget::on_pushButton_2_clicked()
{
//ok用于标记是否单击了OK按钮
bool ok;
QFont font = QFontDialog::getFont(&ok,this);
if(ok)
ui->pushButton_2->setFont(font);
else
qDebug()<<tr("没有选择字体!");
}
//输入对话框
void MyWidget::on_pushButton_7_clicked()
{
bool ok;
//获得字符串
QString str = QInputDialog::getText(this,tr("输入字符串对话框"),
tr("请输入用户名:"), QLineEdit::Normal,
tr("admin"),&ok);
if(ok) qDebug()<<"str: "<<str;
//获得整数
int value1 = QInputDialog::getInt(this,tr("输入整数对话框"),
tr("请输入-1000到1000之间的整数"),
100,-1000,1000,10,&ok);
if(ok) qDebug()<<"value1: "<<value1;
//获得浮点数
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;
}
//消息对话框
void MyWidget::on_pushButton_4_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("这是Q书籍!"), QMessageBox::Ok);
if(ret2==QMessageBox::Ok) qDebug()<<tr("提示!");
//警告对话框
int ret3 = QMessageBox::warning(this,tr("警告对话框"),tr("不能提前结束!"),QMessageBox::Abort);
if(ret3==QMessageBox::Abort) qDebug()<<tr("警告!");
//错误对话框
int ret4 = QMessageBox::question(this,tr("错误对话框"),tr("发现一个严重错误!即将关闭软件!"),QMessageBox::YesAll);
if(ret4==QMessageBox::YesAll) qDebug()<<tr("错误!");
//关于对话框
QMessageBox::about(this,tr("关于对话框"),tr("Qt 5.4.0"));
}
//进度对话框
void MyWidget::on_pushButton_5_clicked()
{
QProgressDialog dialog(tr("文件复制速度"),tr("取消"),0,500000,this);
dialog.setWindowTitle(tr("进度对话框")); //设置窗口标题
dialog.setWindowModality(Qt::WindowModal); //将对话框设置为模态
dialog.show();
for(int i=0;i<500000;i++)
{
dialog.setValue(i); //演示复制进度
QCoreApplication::processEvents(); //设置进度条的当前值
if(dialog.wasCanceled()) //按下取消按钮则弄断
break;
}
dialog.setValue(500000); //这样才能显示100%,因为for循环中少加了一个数
qDebug()<<tr("复制结束!");
}
//错误信息对话框
void MyWidget::on_pushButton_3_clicked()
{
errordlg->setWindowTitle(tr("错误信息对话框"));
errordlg->showMessage(tr("这里是错误信息!"));
}
QWizardPage * MyWidget::createPage1()
{
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;
}
//向导对话框
void MyWidget::on_pushButton_8_clicked()
{
QWizard wizard(this);
wizard.setWindowTitle("向导对话框");
wizard.addPage(createPage1());
wizard.addPage(createPage2());
wizard.addPage(createPage3());
wizard.exec();
}
没有合适的资源?快使用搜索试试~ 我知道了~
Qt对话框QDialog相关练习代码
共15个文件
cpp:5个
h:3个
ui:3个
需积分: 50 15 下载量 52 浏览量
2022-04-08
19:01:10
上传
评论 1
收藏 14KB RAR 举报
温馨提示
具体内容参照博客: https://liuhui.blog.csdn.net/article/details/124036754 1. 模态和非模态对话框 2. 多窗口切换 2.1 信号和槽 2.2 练习信号和槽例程 2.3 自定义对话框 3. 标准对话框 3.1 颜色对话框 3.2 文件对话框 3.3 字体对话框 3.4 输入对话框 3.5 消息对话框 3.6 进度对话框 3.7 错误消息对话框 3.8 向导对话框
资源详情
资源评论
资源推荐
收起资源包目录
qtcode.rar (15个子文件)
qtcode
mydialog2
mydialog2.pro.user 101KB
mywidget.ui 3KB
main.cpp 179B
mywidget.cpp 7KB
mywidget.h 840B
mydialog2.pro 1KB
mydialog1
mydialog.ui 1KB
mydialog1.pro 1KB
mydialog.h 342B
mywidget.ui 3KB
main.cpp 476B
mywidget.cpp 2KB
mywidget.h 489B
mydialog1.pro.user 101KB
mydialog.cpp 278B
共 15 条
- 1
MechMaster
- 粉丝: 3w+
- 资源: 55
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 学生成绩管理系统-C++版本
- 吉林大学离散数学2笔记.pdf
- 通道处理过程的模拟通常涉及对通道处理机制的理解与实现.txt
- Flume进阶-自定义拦截器jar包
- Dubins曲线算法讲解和在运动规划中的使用.pdf
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.dta
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.xlsx
- Reeds+Shepp曲线算法讲解和实现.pdf
- 毕业设计基于SpringBoot+MyBatisPlus+MySQL+Vue的外卖配送信息系统源代码+数据库
- 词向量(Word Embeddings)是自然语言处理(NLP)领域的一种重要技术.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0