13.Qt 文件的读和写,样式表文件的读用

目录

前言:

技能:

内容:

1. 界面

2.信号槽

①浏览按键

②保存按键

③加载样式按键

参考:


前言:

上一篇文章说明了如何弹窗选取文件并在Qlabel中显示文件内容

12.QT文件对话框 文件的弹窗选择-QFileDialog

这篇在此基础上完成反向的从Qt向文件的写入,以及读取Qt样式表文件并作用到界面


技能:

文件打开

plain text edit控件的加行与读取

样式表文件的代码读取使用

内容:


1. 界面

UI不用多说,三个pushbutton,上面一个line edit,下面一个可以显示多行内容的plain text edit

2.信号槽
①浏览按键
void Widget::on_pushButton_clicked()
{
    QString filename = QFileDialog::getOpenFileName(this, "弹窗标题",
                                                    "C://","*.txt");
    ui->lineEdit->setText(filename);

    QFile file(filename);
    if(!file.open(QIODevice::ReadOnly|QIODevice::Text))
        return;

    while(!file.atEnd()){
        QString line=file.readLine();
        ui->plainTextEdit->appendPlainText(line);
    }
    file.close();
}

代码内容依次解释为

先和上次一样的弹出对话框选取.txt文件,更详细解释可以看上一篇内容

然后把文件的路径在line edit显示一下,不是必要的,只是更有逼格

再打开文件,以只读的方式打开TEXT文件

最后一行一行的读出文件内容并添加到多行显示的 plain text edit模块中,直到文件结束

关闭文件

效果展示

②保存按键
void Widget::on_pushButton_2_clicked()
{
    QFile file(ui->lineEdit->text());
    if(!file.open(QIODevice::WriteOnly|QIODevice::Text))
        return;

    QString context=ui->plainTextEdit->toPlainText();
    const char *STemp=context.toStdString().c_str();
    int len=strlen(STemp);

    if(len>0)
        file.write(STemp,len);
    file.flush();
    file.close();
}

首先以只写的方式打开 line edit里面路径对应的文件

然后把plain text edit里面的所有内容读到context中保存

进行类型转换成const char *型的STemp

读取文本长度

最后全部写进文件

冲刷缓冲区

关闭文件

③加载样式按键
void Widget::on_pushButton_3_clicked()
{
    QString filename=QFileDialog::getOpenFileName(this,"样式表对话框","D://","*.css");
    ui->lineEdit->setText(filename);
    QFile stylefile(filename);
    if(stylefile.open(QFile::ReadOnly)){
        QTextStream stream(&stylefile);
        QString stylesheet=stream.readAll();
        this->setStyleSheet(stylesheet);
    }
    stylefile.close();
}

 首先选取.css的样式表文件

line edit中显示文件路径

初始化QFile文件

以只读的形式打开文件,转换类型成 QTextStream,然后读取全部再转换成QString,最后使用setStyleSheet()函数实现

最后关闭文件

样式表知识可以参考链接1

参考:

【Qt学习系列】11.Qt样式表Qss(2)

【Qt学习系列】13.Qt文件读写

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML 入门指南

简述 参考:HTML 教程- (HTML5 标准) HTML 语言的介绍、特点 HTML:超级文本标记语言(HyperText Markup Language) “超文本” 就是指页面内可以包含图片、链接等非文字内容。“标记” 就是使用标签的方法将需要的内容包括起来。…

星纪魅族宣布 All in AI;欧盟将首次对苹果处以罚款丨 RTE 开发者日报 Vol.146

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

世界顶级名校计算机专业,都在用哪些书当教材?(文末送书)

目录 01《深入理解计算机系统》02《算法导论》03《计算机程序的构造和解释》04《数据库系统概念》05《计算机组成与设计:硬件/软件接口》06《离散数学及其应用》07《组合数学》08《斯坦福算法博弈论二十讲》参与规则 清华、北大、MIT、CMU、斯坦福的学霸们在新学期里…

洛谷 P6546 [COCI2010-2011#2] PUŽ

讲解&#xff1a; 首先还是正常输入&#xff1a; int a,b,v; cin>>a>>b>>v; 然后经入一个函数num&#xff1a; cout<<num(1.0*(v-a),(a-b))1<<endl; 之所以要乘以1.0是因为要向上取整&#xff01;而这个num函数的两个参数则是“蜗牛白天爬了多…

python统计分析——一元线性回归分析

参考资料&#xff1a;用python动手学统计学 1、导入库 # 导入库 # 用于数值计算的库 import numpy as np import pandas as pd import scipy as sp from scipy import stats # 用于绘图的库 import matplotlib.pyplot as plt import seaborn as sns sns.set() # 用于估计统计…

多线程系列(一) -线程技术入门知识讲解

一、简介 在很多场景下&#xff0c;我们经常听到采用多线程编程&#xff0c;能显著的提升程序的执行效率。例如执行大批量数据的插入操作&#xff0c;采用单线程编程进行插入可能需要 30 分钟&#xff0c;采用多线程编程进行插入可能只需要 5 分钟就够了。 既然多线程编程技术…

GpuMall智算云平台:计费说明

1. 充值​ 当前GpuMall支持在线充值或者对公汇款。 选择在线充值时&#xff0c;填写或选择要充值的金额&#xff0c;推荐充值300元&#xff0c;可直接成为会员享受95折优惠。 点击下一步 在线体验入口&#xff1a;GpuMall智算云 | 省钱、好用、弹性。租GPU就上GpuMall 手机…

如何在三维地球上加载obj、fbx、ifc、dae、3ds、gltf/glb模型?

通过以下方法可以在三维地球上加载obj、fbx、ifc、dae、3ds、gltf/glb模型。 方法/步骤 下载三维地图浏览器 http://www.geosaas.com/download/map3dbrowser.exe&#xff0c;安装完成后桌面上出现”三维地图浏览器“图标。 2、双击桌面图标打开”三维地图浏览器“ 3、点击“…

全网最详细的从0到1的turbo pnpm monorepo的前端工程化项目[vitePress篇]

全网最详细的从0到1的turbo pnpm monorepo的前端工程化项目[vitePress篇] 前言选型为什么选择VitePress安装VitePress运行优化默认UI使用自定义UI编辑自定义布局编写home页面组件编写page页面组件 结语 前言 一个好的工程化项目&#xff0c;必然有一个好的文档管理&#xff0c;…

【复现】Panalog大数据日志审计系统 RCE漏洞_51

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 Panalog大数据日志审计系统定位于将大数据产品应用于高校、 公安、 政企、 医疗、 金融、 能源等行业之中&#xff0c;针对网络流…

秒级到毫秒级的跨越—一次慢SQL优化历险

一次慢 SQL 优化过程 一、背景 对于公司内部的一个发票管理系统&#xff0c;财务人员经常需要对发票的开票交易进行查询&#xff0c;这里涉及到两张表&#xff1a;发票订单表和发票信息表&#xff0c;我们需要查询订单 ID、开票 APP、开票主体、订单类型、支付渠道、支付总额…

Linux系统安全:安全技术和防火墙

目录 一、安全技术和防火墙 1.安全技术 2.防火墙的分类 二、防火墙 1.iptables四表五链 2.黑白名单 3.iptables基本语法 4.iptables选项 5.控制类型 6.隐藏扩展模块 7.显示扩展模块 8.iptables规则保存 9.自定义链使用 一、安全技术和防火墙 1.安全技术 入侵检测系…

AMD FPGA设计优化宝典笔记(5)低频全局复位与高扇出

亚军老师的这本书《AMD FPGA设计优化宝典》&#xff0c;他主要讲了两个东西&#xff1a; 第一个东西是代码的良好风格&#xff1b; 第二个是设计收敛等的本质。 这个书的结构是一个总论&#xff0c;加上另外的9个优化&#xff0c;包含的有&#xff1a;时钟网络、组合逻辑、触发…

在ubuntu20.04 上配置 qemu/kvm linux kernel调试环境

一&#xff1a;安装qemu/kvm 和 virsh qemu/kvm 是虚拟机软件&#xff0c;virsh是管理虚拟机的命令行工具&#xff0c;可以使用virsh创建&#xff0c;编辑&#xff0c;启动&#xff0c;停止&#xff0c;删除虚拟机。 &#xff08;1&#xff09;&#xff1a;安装之前&#xff0c…

Matlab|基于支持向量机的电力短期负荷预测【最小二乘、标准粒子群、改进粒子群】

目录 主要内容 部分代码 结果一览 下载链接 主要内容 该程序主要是对电力短期负荷进行预测&#xff0c;采用三种方法&#xff0c;分别是最小二乘支持向量机&#xff08;LSSVM&#xff09;、标准粒子群算法支持向量机和改进粒子群算法支持向量机三种方法对负荷进行…

Shiro-05-shiro 基础知识补充密码学+哈希散列

密码学 密码术是隐藏或混淆数据的过程&#xff0c;因此窥探眼睛无法理解它。 Shiro的加密目标是简化JDK的加密支持并使之可用。 需要特别注意的是&#xff0c;密码通常不是特定于主题的&#xff0c;因此Shiro API的其中一个领域不是特定于主题的。 即使未使用“主题”&…

Android 架构组件全示例

Android 架构组件全示例 Android架构组件属于Jetpack的组成部分&#xff0c;彻底改变了开发人员构建健壮且易于维护的Android应用程序的方式。通过Room、Lifecycle-aware组件、ViewModels、LiveData、Paging、Navigation、ViewBinding和WorkManager等组件&#xff0c;开发人员…

K8s进阶之路-命名空间级-服务发现 :

服务发现&#xff1a; Service&#xff08;东西流量&#xff09;&#xff1a;集群内网络通信、负载均衡&#xff08;四层负载&#xff09;内部跨节点&#xff0c;节点与节点之间的通信&#xff0c;以及pod与pod之间的通信&#xff0c;用Service暴露端口即可实现 Ingress&#…

python绘制k线图均线图

AAPL.csv 数据文件 Date,Close,Volume,Open,High,Low 06/23/2023,$186.68,53117000,$185.55,$187.56,$185.01 06/22/2023,$187.00,51245330,$183.74,$187.045,$183.67 06/21/2023,$183.96,49515700,$184.90,$185.41,$182.5901 06/20/2023,$185.01,49799090,$184.41,$1…

unity学习(15)——服务器组装(1)

1.新建好的c#项目如下&#xff1a; 文件夹中内容如下&#xff1a; 此时已经可以通过vs2022打开.sln文件&#xff0c;就可以打开项目了。 2.我们把逆向后&#xff08;主程序&#xff09;的内容的代码粘贴过去。有些逆向功底&#xff0c;很快可以定位到&#xff0c;服务器的入口…
最新文章