QT对话框

╰+攻爆jí腚メ 2023-05-21 08:55 130阅读 0赞

1、颜色对话框

在ui界面创建一个push button,之后转到槽,选择clicked

添加头文件#include

之后添加以下代码,getcolor(设置初始颜色,指定父窗口,设置对话框标题,显示alpha透明度设置)

  1. #include <QColorDialog>
  2. void MyWidget::on_pushButton_clicked()
  3. {
  4. // QColor color=QColorDialog::getColor(Qt::red,this,tr("颜色对话框"),QColorDialog::ShowAlphaChannel);
  5. // qDebug()<<"color:"<<color;
  6. //分步写,跟上面两行代码的效果一样
  7. QColorDialog dialog(Qt::red,this);
  8. dialog.setOption(QColorDialog::ShowAlphaChannel);
  9. dialog.setWindowTitle(tr("颜色对话框"));
  10. dialog.exec();
  11. QColor color=dialog.currentColor();
  12. qDebug()<<"color:"<<color;
  13. }

2、文件对话框

不同类型之间要用“;;”隔开

  1. void MyWidget::on_pushButton_4_clicked()
  2. {
  3. // QString fileName=QFileDialog::getOpenFileName(this, tr("文件对话框"),"D:",tr("图片文件(*png *jpg);;文本文件(*txt)"));
  4. QStringList fileName=QFileDialog::getOpenFileNames(this, tr("文件对话框"),"D:",tr("图片文件(*png *jpg)"));
  5. qDebug()<<"fileNme:"<<fileName;
  6. QString fileSave=QFileDialog::getExistingDirectory(this,tr("文件夹路径"),"D:");
  7. qDebug()<<"fileSave:"<<fileSave;
  8. // QString fileSave=QFileDialog::getSaveFileName(this,tr("保存"),"D:",tr("图片文件(*png *jpg)"));
  9. // qDebug()<<"fileSave:"<<fileSave;
  10. }

3、字体对话框

  1. void MyWidget::on_pushButton_2_clicked()
  2. {
  3. //ok是否单机了OK按钮
  4. bool ok;
  5. QFont font=QFontDialog::getFont(&ok,this);
  6. //如果单机了OK按钮,那么让字体对话框按钮使用新字体
  7. //如果单机了cancel按钮,那么输出信息
  8. if(ok){
  9. ui->pushButton_2->setFont(font);
  10. }
  11. else{
  12. qDebug()<<tr("没有选择字体");
  13. }
  14. }

4、输入对话框

getInt(父窗口,窗口标题,对话框标签显示文本,默认数值,最小值,最大值,每次变化的值,是否按下ok)

  1. void MyWidget::on_pushButton_5_clicked()
  2. {
  3. bool ok;
  4. QString string=QInputDialog::getText(this,tr("输入字符串对话框"),tr("请输入用户名"),QLineEdit::Normal,tr("admin"),&ok);
  5. if(ok)qDebug()<<"string:"<<string;
  6. int value1=QInputDialog::getInt(this,tr("请输入整数对话框"),tr("请输入-1000到1000的整数"),100,-1000,1000,10,&ok);
  7. if(ok)qDebug()<<"value1:"<<value1;
  8. double value2=QInputDialog::getDouble(this,tr("输入浮点对话框"),tr("请输入-10到10的值"),0.00,-10,10,2,&ok);
  9. if(ok)qDebug()<<"value2:"<<value2;
  10. QStringList items;
  11. items<<tr("条目1")<<tr("条目2");
  12. QString item=QInputDialog::getItem(this,tr("输入条目对话框"),tr("请选择或输入一个条目"),items,0,true,&ok);
  13. if(ok)qDebug()<<"item:"<<item;
  14. }

5、消息对话框

  1. void MyWidget::on_pushButton_3_clicked()
  2. {
  3. int ret1=QMessageBox::question(this,tr("问题对话框"),tr("你了解QT吗?"),QMessageBox::Yes,QMessageBox::No);
  4. if(ret1==QMessageBox::Ok)qDebug()<<tr("问题!");
  5. int ret2=QMessageBox::information(this,tr("提示对话框"),tr("这是QT书籍!"),QMessageBox::Ok);
  6. if(ret2==QMessageBox::Ok)qDebug()<<tr("提示!");
  7. int ret3=QMessageBox::warning(this,QString("警告对话框!"),tr("不能提前结束!"),QMessageBox::Abort);
  8. if(ret3==QMessageBox::Abort)qDebug()<<tr("警告");
  9. int ret4=QMessageBox::critical(this,tr("严重错误对话框"),tr("严重错误,关闭所有文件!"),QMessageBox::YesAll);
  10. if(ret4==QMessageBox::YesAll)qDebug()<<tr("错误");
  11. QMessageBox::about(this,tr("关于对话框"),tr("yafeilinux致力于Qt及Qt Creator的普及工作"));
  12. }

6、进度对话框

  1. void MyWidget::on_pushButton_6_clicked()
  2. {
  3. QProgressDialog dialog(tr("文件复制进度"),tr("取消"),0,50000,this);
  4. dialog.setWindowTitle(tr("进度对话框"));
  5. dialog.setWindowModality(Qt::WindowModal);
  6. dialog.show();
  7. for(int i=0;i<50000;i++)
  8. {
  9. dialog.setValue(i);
  10. QCoreApplication::processEvents();//避免界面冻结
  11. if(dialog.wasCanceled())break;
  12. }
  13. dialog.setValue(50000);
  14. qDebug()<<tr("复制结束!");
  15. }

发表评论

表情:
评论列表 (有 0 条评论,130人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Qt 标准对话框

    1.对话框种类 为应用程序设计提供了一些常用的标准对话框,如打开文件对话框、选择颜色对话框、信息提示和确认选择对话框、标准输入对话框等,用户无需再自己设计这些常用的对话框