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

news2024/11/28 0:57:58

目录

概述

继承图

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.coloradmin.cn/o/1399395.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++数的输入和输出 2023年12月c++一级 电子学会中小学生软件编程C++等级考试一级真题答案解析

目录 C数的输入和输出 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C数的输入和输出 2023年12月 C编程等级考试一级编程题 一、题目要求 1、编程实现 输入一个整数和双精度浮点数&#xff0c;先将浮…

负载均衡流程

1、负载均衡流程图 2、触发负载均衡函数trigger_load_balance void trigger_load_balance(struct rq *rq) { /* Dont need to rebalance while attached to NULL domain */ if (unlikely(on_null_domain(rq)))//当前调度队列中的调度域是空的则返回 return; i…

Python + Selenium —— 网页元素定位之标签名和链接文本定位

tag name tag name 为标签名定位&#xff0c;使用网页元素的标签名如a, div, input, span 等。 但是有一个问题&#xff0c;常见的标签名比如 在同一个页面上有非常多。会不会觉得 tag name 没什么用呢&#xff1f; 当然普通的模拟操作是不大有用&#xff0c;这个重复性实在…

深入剖析MyBatis缓存机制

第1章&#xff1a;引言 大家好&#xff0c;我是小黑。今天我们要聊的是MyBatis的缓存机制。作为Java开发中经常使用的持久层框架&#xff0c;MyBatis以其灵活性和简便性而广受欢迎。但你知道吗&#xff0c;很多时候&#xff0c;正是因为这些特点&#xff0c;我们需要更深入地理…

Swift抓取某网站律师内容并做排名筛选

有个很要好的朋友&#xff0c;今天找我说他的朋友欠他钱&#xff0c;因为工程上面的事情&#xff0c;所以一直没拿到款。想让我找个靠谱的律师帮他打官司&#xff0c;因为这个也不是我的强项&#xff0c;也没有这方面的经验。随即从律师网站爬取对应律师口碑以及成功案例&#…

pytorch 44 不修改源码在yolov8中使用odconv动态卷积

这里仅修改对YOLOv8的使用方式,不修改任何源码即可将odconv使用到最新的yolov8n模型上,实现了对私有数据集下的巨大性能提升(尤其是对于类别不平衡的少样本数据)。ODCONV是Intel提出的一种极差即用的动态卷积,在小模型上涨点效果较为明显(在大模型上涨点效果略微退化),…

logstack 日志技术栈-04-opensource 开源工具 OpenObserve+Grafana Loki

日志技术栈 日志管理包含日志数据存储、处理、分析和可视化&#xff0c;通过利用日志管理工具&#xff0c;可以监控性能趋势、解决问题、检测异常并优化整体系统性能。 近年来&#xff0c;开源日志管理解决方案在大家寻求灵活且经济有效的方式来管理现代系统典型的大量日志数…

基于一次应用卡死问题所做的前端性能评估与优化尝试

问题背景 在上个月&#xff0c;由于客户反馈客户端卡死现象但我们远程却难以复现此现象&#xff0c;于是我们组织了一次现场上门故障排查&#xff0c;并希望基于此次观察与优化&#xff0c;为客户端开发提供一些整体的优化升级。当然&#xff0c;在尝试过程中&#xff0c;也发…

智谱 GLM-4 大语言模型好用吗?

我替你尝试了它的基本对话、绘图、阅读长文档、数据分析和高级联网等几方面能力。 最近智谱的 GLM-4 大语言模型发布&#xff0c;成为了热门话题。一篇文章不断出现在我的朋友圈和各种群聊中。 这篇文章是由新智元发布的&#xff0c;介绍了GLM-4的特性。文章兴奋地宣称&#xf…

1360. 卒的遍历-深度优先搜索-DFS

代码&#xff1a; #include<bits/stdc.h> using namespace std; int n,m; int r[25][3]; int fx[3]{0,1,0}; int fy[3]{0,0,1}; int a; void print(int k){a;cout<<a<<":";for(int i1;i<k;i){cout<<r[i][1]<<","<<…

c++类的静态成员变量和非静态成员变量定义和初始化为什么有区别?

类的静态成员变量和非静态成员变量定义和初始化为什么有区别? 我的理解是如果静态成员变量在类里定义的话&#xff0c;也就是每一个类的实例化对象都有这个静态成员变量的大小&#xff0c;也就违背了静态成员变量属于类&#xff0c;只有一份拷贝 静态成员变量和非静态成员变量…

python-基础篇-高级变量类型

文章目录 高级变量类型目标知识点回顾 01. 列表1.1 列表的定义1.2 列表常用操作del 关键字&#xff08;科普&#xff09;关键字、函数和方法&#xff08;科普&#xff09; 1.3 循环遍历1.4 **应用场景** 02. 元组2.1 元组的定义创建空元组元组中 **只包含一个元素** 时&#xf…

记录一个sql:查询商品码对应多个商品的商品码

目录 背景sql 语句总结 背景 一个项目中&#xff0c;商品表和商品码表是一对多的关系&#xff0c;但由于程序没有控制好&#xff0c;导致有些商品码对应有多个商品&#xff0c;为了修正数据&#xff0c;我们得把商品码对应多个商品的商品码找出来. sql 语句 goods_detail表结构…

INTEWORK—PET 汽车软件持续集成平台

产品概述 INTEWORK-PET-CI是经纬恒润自主研发的汽车软件持续集成&持续交付平台&#xff0c;在传统的持续集成基础上深化了研运一体化&#xff08;DevOps&#xff09;的概念&#xff0c;将嵌入式软件中的拉取代码、检查、构建、测试、版本管理以及发布交付等环节串联起来&am…

【EFCore仓储模式】介绍一个EFCore的Repository实现

阅读本文你的收获 了解仓储模式及泛型仓储的优点学会封装泛型仓储的一般设计思路学习在ASP.NET Core WebAPI项目中使用EntityFrameworkCore.Data.Repository 本文中的案例是微软EntityFrameworkCore的一个仓储模式实现&#xff0c;这个仓储库不是我自己写的&#xff0c;而是使…

接口自动化框架搭建-写在前面

从今天开始&#xff0c;我将带领大家一起学习接口自动化框架的搭建&#xff0c;在学习之前&#xff0c;我们先了解搭建一个接口自动化框架需要具备哪些知识&#xff0c;应该做哪些准备工作 测试开发工程师的入门条件 近几年比较流行测试开发岗位&#xff0c;很多小伙伴都不知…

虚拟机安装宝塔的坑

问题&#xff1a; 在虚拟机中centos7和centos8中安装宝塔之后&#xff0c;无法访问面板。 解决&#xff1a; 1.先关闭防火墙&#xff08;如果本机能够ping通相关端口&#xff0c;则不用关闭防火墙&#xff09; 2.最新的宝塔会自动开启ssl协议&#xff0c;需要手动关闭。…

【深度学习】BasicSR训练过程记录

文章目录 两种灵活的使用场景项目结构概览简化的使用方式 项目结构解读1. 代码的入口和训练的准备工作2. data和model的创建2.1 dataloader创建2.2 model的创建 3. 训练过程 动态实例化的历史演进1. If-else判断2. 动态实例化3. REGISTER注册机制 REGISTER注册机制的实现1. DAT…

反序列化提升刷题(2)

今天的例题&#xff1a; <?phphighlight_file(__FILE__);class ctfshowvip{public $username;public $password;public $code;public function __construct($u,$p){$this->username$u;$this->password$p;}public function __wakeup(){if($this->username! || $thi…

2008年苏州大学837复试机试C语言

2008年苏州大学复试机试C 题目 编写程序充成以下功能: 一、从键盘上输入随机变量x的 10个取样点。X0&#xff0c;X1—X9 的值; 1、计算样本平均值 2、判定x是否为等差数列 3、用以下公式计算z的值(t0.63) 注。请对程序中必要地方进行注释 补充&#xff1a;个人觉得这个题目回…