一、标准对话框

1.对于颜色对话框

void MyWidget::on_pushButton_clicked()
{
QColorDialog dialog(Qt::red,this);
dialog.setOption(QColorDialog::ShowAlphaChannel);//显示alpha选项
dialog.exec();
QColor color=dialog.currentColor();//获取颜色
qDebug()<<"color:"<<color;
}

2.对于文件对话框

void MyWidget::on_pushButton_2_clicked()
{
QString fileName=QFileDialog::getOpenFileName(this,tr("文件对话框"),"D:",tr("图片文件(*png *jpg"));
qDebug()<<"fileName:"<<fileName;
}

3.字体对话框

void MyWidget::on_pushButton_3_clicked()
{
bool ok;
QFont font=QFontDialog::getFont(&ok,this);
if(ok)
{
ui->pushButton_2->setFont(font);
}
else
{
qDebug()<<tr("没有你选择的字体");
}
}

4.对于输入对话框

void MyWidget::on_pushButton_4_clicked()
{
bool ok;
QString string=QInputDialog::getText(this,tr("输入字符对话框"),tr("请输入用户名:"),QLineEdit::Normal,tr("admin"),&ok);
if(ok)
{
qDebug()<<"string:"<<string;
}
int value1=QInputDialog::getInt(this,tr("输入整数对话框"),tr("输入-1000到1000之间的数值"),100,-1000,1000,10,&ok);
if(ok)
{
qDebug()<<"value1:"<<value1;
}
int 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;
} }

5.消息对话框

void MyWidget::on_pushButton_5_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::Abort);
if(ret3==QMessageBox::Abort)qDebug()<<tr("警告");
int ret4=QMessageBox::critical(this,tr("严重错误对话框"),tr("发现一个严重的错误!,现在我要关闭所有的文件!"),QMessageBox::YesAll);
if(ret4==QMessageBox::YesAll) qDebug()<<tr("错误");
QMessageBox::about(this,tr("关于对话框"),tr("yafeililnux致力于Qt以及QT的普及工作")); }

6.进度条对话框

void MyWidget::on_pushButton_6_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();
if(dialog.wasCanceled())break;
}
dialog.setValue(50000);
qDebug()<<tr("复制结束");
}

7.错误对话框

8.向导对话框

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(tr("向导对话框"));
wizard.addPage(createPage1());
wizard.addPage(createPage2());
wizard.addPage(createPage3());
wizard.exec();
}

最新文章

  1. 0003--Weekly Meeting on 10th April and 17th April, 2015
  2. windows服务 2.实时刷新App.config
  3. 程序在nor flash中真的可以运行吗?
  4. 表达式:使用API创建表达式树(5)
  5. MaxSubArray 最大子数列和
  6. android开发中防止刚进入activity时edittext获取焦点,自动弹出软键盘
  7. Hibernate一对一外键映射
  8. Java基础知识二次学习--第四章 异常
  9. Windows zip安装MySQL
  10. 五十四、linux 编程——TCP 编程模型
  11. 【.NET Core项目实战-统一认证平台】第五章 网关篇-自定义缓存Redis
  12. Spring boot 全局配置文件application.properties
  13. 提交已经注入文件的表单给后台上传图片 使用ajaxsubmit
  14. chardet查看字符串的编码(非常好用)
  15. C#常用加密方法
  16. WPF DataGrid分组和排序
  17. 011.MySQL双主多从+Keepalived配置
  18. 转:vue-cli的webpack模板项目配置文件分析
  19. golang实现base64编解码
  20. 【vue】------浅谈vue------【William】

热门文章

  1. Net Core 3.1 ONVIF 操控海康摄像头
  2. java annotation(如何创建新的注解)小结
  3. Java 查找Panel 里的某个组件 比如 按钮
  4. LM393双电压比较器集成电路引脚图及功能_工作原理及应用电路
  5. 2.9 系统IO
  6. 单个表空间文件个数达到上限 ORA-01686
  7. keepalived检测UDP端口
  8. kubernetes强制删除namespace
  9. nuxt项目中使用store
  10. Scrapy模块和Asyncpy模块