qt学习:QT对话框+颜色+文件+字体+输入

目录

概述

继承图

QColorDialog 颜色对话框

QFileDialog 文件对话框

保存文件对话框

QFontDialog 字体对话框

QInputDialog 输入对话框


概述

  • 对于对话框的功能,在GUI图形界面开发过程,使用是非常多,那么Qt也提供了丰富的对话框类
  • QDialog是所有对话框的基类

继承图

  • QWidget 
    • QDialog
      • QColorDialog 颜色对话框
      • QFileDialog 文件对话框
      • QFontDialog 
      • QInputDialog
      • QMessageBox
      • QProgressDialog

QColorDialog 颜色对话框

头文件 #include <QColorDialog>

弹出颜色对话框
QColorDialog::getColor();获取颜色对话框选择的颜色
QColor color = QColorDialog::getColor();获取rgb
color.red();
color.green();
color.blue();QColorDialog::getColor();
默认参数
第一个,默认当前选择的颜色是白色  Qt::while
第二个,父类,nullptr
第三个,标题,QString()
第四个,样式,ColorDialogOptions()其他样式有
ShowAlphaChannel      多了一个透明度
NoButtons             没有按钮
DontUseNativeDialog

QFileDialog 文件对话框

给用户选择一个文件或者多个文件或者目录

头文件 #include <QFileDialog >

通过静态函数弹出文件对话框,返回文件路径
QString fileName = QFileDialog::getOpenFileName(this,//父部件"Open Image",//标题"/home/jana",//默认路径"Image Files (*.png *.jpg *.bmp)")//文件过滤器
);返回文件路径容器
QStringList list = QFileDialog::getOpenFileNames(this,//父部件"Open Image",//标题"./",//默认路径"Image Files (*.png *.jpg *.bmp)")//文件过滤器
);
for(int i = 0; i < list.size(); i++)
{qDebug()<<list.at(i);
}案例
打开文件显示文件里的内容
QString fileName = QFileDialog::getOpenFileName(this,//父部件"Open Image",//标题"/home/jana",//默认路径"Image Files (*.png *.jpg *.bmp)")//文件过滤器
);
//实例化文件类对象
QFile file(fileName);
//打开文件
file.open(QIODevice::ReadOnly);
//读取文件内容
QByteArray content = file.readAll();
//将读取的文件内容显示到编辑框中
ui->textEdit->setText(content);
//关闭文件
file.close();

保存文件对话框

功能:另存为,它将返回用户选择的文件名,文件不需要存在,用户保存,给文件另存为命名

QString getSaveFileName(QWidget *parent = nullptr,const QString &caption = QString(),const QString &dir = QString(),const QString &filter = QString(),QString *selectedFilter = nullptr,QFileDialog::Options options = Options()
)案例//1、弹出保存文件对话框,让用户选择 将这些数据 保存到哪个文件中QString  fileName = QFileDialog::getSaveFileName(this,"Open Image", "./", "Files (*.cpp *.h)" );if(fileName.isEmpty()){return ;}//2、打开文件,如果文件不村子则创建,存在则清空QFile file(fileName);bool ret = file.open(QIODevice::WriteOnly|QIODevice::Truncate);if(ret == false){return ;}//3、从界面上的编辑框上获取文件的数据QString content = ui->textEdit->toPlainText();//4、写入到文件中file.write(content.toUtf8());//5、关闭文件file.close();

QFontDialog 字体对话框

头文件 #include <QFontDialog>

//主要函数
QFont getFont( bool *ok,//对获得字体的结果const QFont &inital,//默认字体QWidget *parent = nullptr,//父部件const QString &title = QString(),//标题QFontDialog::FontDialogOptions options = FontDialogOptions()//可选项
)QFont getFont(bool *ok, QWidget *parent = nullptr)案例
弹出字体对话框并返回选择的字体
bool ok;
QFont font = QFontDialog::getFont(&ok , QFont("Helvetica [Cronyx]", 10),this);
if(ok){ui->label->setFont(font);
}

QInputDialog 输入对话框

头文件 #include <QInputDialog >

构造函数
QInputDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()
)主要函数
QString getText(QWidget *parent,//父部件const QString &title,//标题const QString &label,//提示语QLineEdit::EchoMode mode = QLineEdit::Normal,//内容回写模式const QString &text = QString(),//输入框的真正内容bool *ok = nullptr,//结果Qt::WindowFlags flags = Qt::WindowFlags(),//Qt::InputMethodHints inputMethodHints = Qt::ImhNone//
)案例
获取输入数据设置到一个控件上
bool ok;
QString text= QInputDialog::getText(this,"字体对话框","输入提示".QLineEdit::Normal,"",&ok
);
if(ok){ui->label->setText(text);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/418715.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端实现贪吃蛇功能

大家都玩过贪吃蛇小游戏&#xff0c;控制一条蛇去吃食物&#xff0c;然后蛇在吃到食物后会变大。本篇博客将会实现贪吃蛇小游戏的功能。 1.实现效果 2.整体布局 /*** 游戏区域样式*/ const gameBoardStyle {gridTemplateColumns: repeat(${width}, 1fr),gridTemplateRows: re…

【极光系列】springBoot集成elasticsearch

【极光系列】springBoot集成elasticsearch 一.gitee地址 直接下载解压可用 https://gitee.com/shawsongyue/aurora.git 模块&#xff1a;aurora_elasticsearch 二.windows安装elasticsearch tips&#xff1a;注意es客户端版本要与java依赖版本一致&#xff0c;目前使用7.6…

python开发之远程开发工具对比

前言 除了本地开发外&#xff0c;还有一种常见的开发方式就是远程开发&#xff0c;一般情况是一台Windows或mac笔记本作为日常使用的电脑&#xff0c;另有一台linux服务器作为开发服务器。开发服务器的性能往往较强&#xff0c;这样远程开发的方式一方面可以让我们在习惯的系统…

yum下载源,vim使用

文章目录 yum本地配置lzrsz命令行互传scp(远程拷贝)vim yum本地配置 [rootiZf8z3j2ckkap6ypn717msZ ~]# pwd /root [rootiZf8z3j2ckkap6ypn717msZ ~]# ls /etc/yum.repos.d CentOS-Base.repo epel.repo //本地配置源yum会根据/etc/yum.repo.d路径下的配置文件来构成自己的下载…

【设计模式】文件目录管理是组合模式吗?

组合模式是什么&#xff1f; 组合模式是一种将对象组合成树形结构以表示"部分-整体"的层次结构的设计模式。它使得用户对单个对象和组合对象的使用具有一致性。 组合模式在什么情况下使用&#xff1f; 当你发现你需要在代码中实现树形数据结构&#xff0c;让整体-部…

Spring Boot 3.2.2整合MyBatis-Plus 3.5.5依赖不兼容问题

问题演示 导依赖 当你启动项目就会 抛出该异常 java.lang.IllegalArgumentException: Invalid value type for attribute factoryBeanObjectType: java.lang.String 问题原因 mybatis-plus 中 mybatis 的整合包版本不够导致的 解决方案 排除掉mybatis-plus 中 mybatis 的整合…

Autosar PRport 在Simulink中的使用

文章目录 前言模型及Autosar接口配置Autosar接口模型接口 生成代码分析总结 前言 在之前使用Simulink开发Autosar模型时&#xff0c;大部分使用的RTE接口都是Sender or Receiver接口。但如果是对于那些具有存储需求的接口来说&#xff0c;一个sender接口需要有另外一个receive…

list列表可编辑状态

有时候list需要修改或选择属性,mfc自带的只能显示内容,基本上是不可以修改,为了实现这个功能需求,需要完成一下步骤转换. 第一步记录选择的单元格. 第二步创建一个编辑框CComboBox对象, 设置字体,窗口属性. 第三步获取选中单元格的位置信息. 第四步获取单元格内容信息. 第五步…

SpringMVC下半篇之整合ssm

4.ssm整合 4.1.创建表 CREATE TABLE account (id int(11) NOT NULL AUTO_INCREMENT,name varchar(20) DEFAULT NULL,money double DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8;4.2.创建工程 4.3.pom.xml <?xml version"1.0" encoding&…

Redis 消息队列和发布订阅

文章目录 基本模式生产者消费者原理&模型redis实现java实现 发布者订阅者原理&模型redis实现java实现 stream模式原理&模型工作原理redis实现Java实现 选型外传 基本模式 采用redis 三种方案&#xff1a; ● 生产者消费者&#xff1a;一个消息只能有一个消费者 ●…

2024.1.20 模拟赛总结

2024.1.20 模拟赛总结 总结时间安排考试结果考试总结 题解T1T2T3T4 总结 时间安排 8 : 00 ∼ 10 : 00 \qquad 8:00\sim 10:00 8:00∼10:00 开 T 1 T1 T1。第一眼看上去并没有明确的思路&#xff0c;简单想了想发现可以直接贪心走&#xff0c;不过好像有点小细节。推了推细节发…

图像分类 | 基于 Labelme 数据集和 VGG16 预训练模型实现迁移学习

Hi&#xff0c;大家好&#xff0c;我是源于花海。本文主要使用数据标注工具 Labelme 对自行车&#xff08;bike&#xff09;和摩托车&#xff08;motorcycle&#xff09;这两种训练样本进行标注&#xff0c;使用预训练模型 VGG16 作为卷积基&#xff0c;并在其之上添加了全连接…