当前位置: 首页 > news >正文

QT文件对话框,将标签内容保存至指定文件

一、主要步骤

        首先,通过getSaveFileName过去想要保存的文件路径及文件名,其次,通过QFile类实例化一个文件对象,再读取文本框中的内容,最后将读取到的内容写入到文件中,最后关闭文件。

        1.txt即为完成上述操作所得文件,文件中的内容为左侧文本框中的内容。 

主要功能函数:

void Widget::on_save_clicked()
{QString fileName =  QFileDialog::getSaveFileName(this,"打开文件","E:/QT/QT/day2_home","All(*.*);;Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)");if(fileName.isNull()){QMessageBox::information(this,"提示","未保存选中文件");}//实例化一个文件对象QFile file(fileName);   //使用获取到的文件路劲,实例化一个文件对象,后期对文件的操作都是基于该对象//打开文件if(!file.open(QFile::ReadWrite)){return;}//读取textEdit中的内容QString msg =  ui->textEdit->toPlainText();/将QString转换为QByteArraychar*  ch;QByteArray ba = msg.toLatin1(); // mustch=ba.data();//将textEdit中的内容写入到文件中file.write(ch);//关闭文件file.close();
}

二、 对话框的其他功能及代码展示

2.1 字体对话框

        通过文件对话框可以设置选中或文本框中全部文字的字体样式,如字体,文字大小,文字粗细等。

主要功能函数:

void Widget::on_font_clicked()
{bool ok;QFont font =  QFontDialog::getFont(&ok,QFont("楷体",10,10,false),this,"选择字体");if (ok){// ui->textEdit->setFont(font);  //设置全部字体变化ui->textEdit->setCurrentFont(font); //设置选中字体变化} else{QMessageBox::information(this,"提示","选中字体未保存");}
}

2.2 颜色对话框

        通过颜色对话框可跟换字体颜色或背景颜色

主要功能函数:

void Widget::on_color_clicked()
{//[static] QColor//QColorDialog::getColor(//const QColor &initial = Qt::white,//QWidget *parent = nullptr,//const QString &title = QString(),//QColorDialog::ColorDialogOptions options = ColorDialogOptions())QColor color =  QColorDialog::getColor(QColor("white"),this,"选中颜色");if(color.isValid()){ui->textEdit->setTextColor(color);ui->textEdit->setTextBackgroundColor(color);} else{QMessageBox::information(this,"提示","颜色未保存");}
}

2.3 文件对话框

        通过getOpenFileName可以获得选中的文件目录,通过相对于的文件操作可以将文件中的内容显示的文本框中。.

主要功能函数:

void Widget::on_open_clicked()
{QString fileName =  QFileDialog::getOpenFileName(this,"打开文件","E:/QT/QT/day2_home","All(*.*);;Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)");if(fileName.isNull()){QMessageBox::information(this,"提示","未保存选中文件");}//实例化一个文件对象QFile file(fileName);   //使用获取到的文件路劲,实例化一个文件对象,后期对文件的操作都是基于该对象//判断文件是否存在if(!file.exists()){return;}//打开文件if(!file.open(QFile::ReadWrite)){return;}//读取文件中的内容QByteArray msg = file.readAll();//将内容展示到 UI界面ui->textEdit->setText(msg);//关闭文件file.close();
}

三、事件处理机制--键盘事件

        通过键盘'W''S''A''D'键,实现小球图标的上下左右移动

键盘响应事件

主要功能函数:

void Widget::keyPressEvent(QKeyEvent *event)
{switch (event->key()){case 'W':{if(ui->label->y() <= 0-ui->label->height()){ui->label->move(ui->label->x(),this->height());}ui->label->move(ui->label->x(),ui->label->y()-10);}break;case 'S':{if(ui->label->y() >= this->height()){ui->label->move(ui->label->x(),0);}ui->label->move(ui->label->x(),ui->label->y()+10);}break;case 'A':{if(ui->label->x() <= 0-ui->label->width()){ui->label->move(this->width(),ui->label->y());}ui->label->move(ui->label->x()-10,ui->label->y());}break;case 'D':{if(ui->label->x() >= this->width()){ui->label->move(0,ui->label->y());}ui->label->move(ui->label->x()+10,ui->label->y());}break;}
}

相关文章:

QT文件对话框,将标签内容保存至指定文件

一、主要步骤 首先&#xff0c;通过getSaveFileName过去想要保存的文件路径及文件名&#xff0c;其次&#xff0c;通过QFile类实例化一个文件对象&#xff0c;再读取文本框中的内容&#xff0c;最后将读取到的内容写入到文件中&#xff0c;最后关闭文件。 1.txt即为完成上述操作…...

C#,《小白学程序》第十一课:阶乘(Factorial)的计算方法与代码

1 文本格式 /// <summary> /// 阶乘的非递归算法 /// </summary> /// <param name"a"></param> /// <returns></returns> private int Factorial_Original(int a) { int r 1; for (int i a; i > 1; i--) { …...

MySQL 数据库常用命令大全(完整版)

文章目录 1. MySQL命令2. MySQL基础命令3. MySQL命令简介4. MySQL常用命令4.1 MySQL准备篇4.1.1 启动和停止MySQL服务4.1.2 修改MySQL账户密码4.1.3 MySQL的登陆和退出4.1.4 查看MySQL版本 4.2 DDL篇&#xff08;数据定义&#xff09;4.2.1 查询数据库4.2.2 创建数据库4.2.3 使…...

【数学】【书籍阅读笔记】【概率论】应用随机过程概率论模型导论 by Sheldon M.Ross 第一章 概率论引总结与习题题解 【更新中】

文章目录 前言1 第一章 概率论引论 总结1.1 样本空间与事件1.2 定义在事件上的概率1.3 条件概率1.4 独立事件 2 一些有用的重要结论/公式/例题3 重要例题例 1.11 3 习题题解题1题2 4 习题总结 前言 1 第一章 概率论引论 总结 第一章从事件的角度引出样本空间、事件、概率的基本…...

posexplode函数实战总结

目录 1、建表和准备数据 2、炸裂实践 3、错误炸裂方式 4、当字段类型为string&#xff0c;需要split一下 对单列array类型的字段进行炸裂时&#xff0c;可以使用lateral view explode。 对多列array类型的字段进行炸裂时&#xff0c;可以使用lateral view posexplode。 1…...

QTday3(对话框、发布软件、事件处理核心机制)

一、Xmind整理&#xff1a; 二、上课笔记整理&#xff1a; 1.消息对话框&#xff08;QMessageBox&#xff09; ①基于属性版本的API QMessageBox::QMessageBox( //有参构造函数名QMessageBox::Icon icon, //图标const Q…...

el-date-picker限制选择的时间范围

<el-date-pickersize"mini"v-model"dateTime"value-format"yyyy-MM-dd HH:mm:ss"type"datetimerange"range-separator"~"start-placeholder"开始日期"end-placeholder"结束日期":picker-options&quo…...

Scala中的Actor模型

Scala中的Actor模型 概念 Actor Model是用来编写并行计算或分布式系统的高层次抽象&#xff08;类似java中的Thread&#xff09;让程序员不必为多线程模式下共享锁而烦恼。Actors将状态和行为封装在一个轻量的进程/线程中&#xff0c;但是不和其他Actors分享状态&#xff0c;…...

Java使用pdfbox将pdf转图片

前言 目前比较主流的两种转pdf的方式&#xff0c;就是pdfbox和icepdf&#xff0c;两种我都尝试了下&#xff0c;icepdf解析出来有时候会出现中文显示不出来&#xff0c;网上的解决方式又特别麻烦&#xff0c;不是安装字体&#xff0c;就是重写底层类&#xff0c;所以我选择了p…...

大规模场景下对Istio的性能优化

简介 当前istio下发xDS使用的是全量下发策略&#xff0c;也就是网格里的所有sidecar(envoy)&#xff0c;内存里都会有整个网格内所有的服务发现数据。这样的结果是&#xff0c;每个sidecar内存都会随着网格规模增长而增长。 Aeraki-mesh aeraki-mesh项目下有一个子项目专门用来…...

数字化新零售平台系统提供商,门店商品信息智慧管理-亿发进销存

传统的批发零售业务模式正面临着市场需求变化的冲击。用户日益注重个性化、便捷性和体验感&#xff0c;新兴的新零售模式迅速崛起&#xff0c;改变了传统的零售格局。如何在保持传统业务的基础上&#xff0c;变革发展&#xff0c;成为了业界亟需解决的问题。 在这一背景下&…...

postgresql-窗口函数

postgresql-窗口函数 简介窗口函数的定义分区选项&#xff08;PARTITION BY&#xff09;排序选项&#xff08;ORDER BY&#xff09;窗口选项&#xff08;frame_clause&#xff09; 聚合窗口函数排名窗口函数演示了 CUME_DIST 和 NTILE 函数 取值窗口函数 简介 常见的聚合函数&…...

Revit SDK 介绍:CreateAirHandler 创建户式风管机

前言 这个例子介绍如何通过 API 创建一个户式风管机族的内容&#xff0c;包含几何和接头。 内容 效果 核心逻辑 必须打开机械设备的族模板创建几何实体来表示风管机创建风机的接头 创建几何实体来表示风管机 例子中创建了多个拉伸&#xff0c;下面仅截取一段代码&#xff…...

微信小程序云开发-云函数发起https请求简易封装函数

一、前言 在日常的开发中&#xff0c;经常会遇到需要请求第三方API的情况&#xff0c;例如请求实名认证接口、IP转换地址接口等等。这些请求放在小程序前端的话&#xff0c;就需要把密钥放在客户端&#xff0c;在安全性上没这么高。 因此&#xff0c;一般是放在云函数端去访问…...

深入探索PHP编程:连接数据库的完整指南

深入探索PHP编程&#xff1a;连接数据库的完整指南 在现代Web开发中&#xff0c;与数据库进行交互是不可或缺的一部分。PHP作为一种强大的服务器端编程语言&#xff0c;提供了丰富的工具来连接和操作各种数据库系统。本篇教程将带您了解如何在PHP中连接数据库&#xff0c;执行…...

【Centos8配置节点免密登陆】

登录Centos8 配置免密登录 为什么需要配置免密登录&#xff0c;玩大数据&#xff0c;玩集群的朋友们&#xff0c;都需要使用RPC通讯&#xff0c;完成集群命令同步&#xff0c;数据操作通讯。要实现RPC通讯&#xff0c;就需要配置节点之间的免密登录。 # 配置登录秘钥 ssh-key…...

不可变集合、Lambda表达式、Stream流

不可变集合、Lambda表达式、Stream流 创建不可变集合 不能被修改的集合 应用场景 如果某个数据不能被修改&#xff0c;把它防御性的拷贝到不可变集合中是个很好的实践。 当集合对象被不可信的库调用时&#xff0c;不可变形式是安全的。 创建不可变集合 在List、Set、Map接口中…...

Three.js GLTF模型加载

在Three.js中&#xff0c;要加载三维模型文件&#xff0c;可以使用GLTF格式。GLTF是一种基于JSON的开放标准&#xff0c;用于3D模型的交换和运行时加载。本篇文章将详细讲解如何使用Three.js加载GLTF模型。 ## 1. 下载GLTF模型 在开始之前&#xff0c;请确保您已经有一个GLTF模…...

外包干了2个月,技术退步明显...

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

java八股文面试[多线程]——主内存和工作内存的关系

JAVA内存模型&#xff08;JMM&#xff09;共享变量&#xff1a;如果一个变量在多个线程的工作内存中都存在副本&#xff0c;那么这个变量就是这几个线程的共享变量。 上面的工作内存其实是java内存模型抽象出来的概念&#xff0c;下面简要介绍一下java内存模型&#xff08;JMM&…...

从怀疑到真香!2026我整理直播内容总结只留下这一款好用工具

上周刚开完3小时的季度评审会&#xff0c;老板散会前说“下班前把整理好的纪要发我”&#xff0c;我抱着电脑坐在位置上&#xff0c;对着三小时录音头都大——逐句听改错别字一下午就没了&#xff1b;之前做用户访谈&#xff0c;受访者一口西南官话&#xff0c;换了三个工具识别…...

紧急更新!Midjourney v6.6对洛可可风格支持突降37%?立即启用这5个兼容性补丁prompt,保住你的商业项目交付期

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney v6.6洛可可风格兼容性危机全景速览 Midjourney v6.6 发布后&#xff0c;大量用户在生成洛可可&#xff08;Rococo&#xff09;风格图像时遭遇显著退化&#xff1a;繁复卷曲的藤蔓纹样被简化…...

3分钟快速上手:AutoCAD字体管理终极方案FontCenter完整教程

3分钟快速上手&#xff1a;AutoCAD字体管理终极方案FontCenter完整教程 【免费下载链接】FontCenter AutoCAD自动管理字体插件 项目地址: https://gitcode.com/gh_mirrors/fo/FontCenter 还在为AutoCAD字体缺失问题烦恼吗&#xff1f;每次打开同事的图纸都遇到文字乱码、…...

OpenShift高可用集群搭建后,这10个运维“救命”命令和5个常见故障排查场景你必须知道

OpenShift高可用集群运维实战&#xff1a;10个关键命令与5大故障场景深度解析 当你的OpenShift集群从测试环境迈向生产环境时&#xff0c;那些在搭建阶段被忽略的运维细节往往会突然成为拦路虎。不同于标准Kubernetes&#xff0c;OpenShift在提供企业级功能的同时也带来了更复杂…...

Spring Security权限进阶:用@PostAuthorize和@PostFilter保护你的API返回数据(Spring Boot 3.x实战)

Spring Security权限进阶&#xff1a;用PostAuthorize和PostFilter保护你的API返回数据&#xff08;Spring Boot 3.x实战&#xff09; 在构建现代Web应用时&#xff0c;数据安全始终是开发者面临的核心挑战之一。传统权限控制往往聚焦于"入口检查"——确保只有合法用…...

Hitboxer SOCD Cleaner:键盘输入仲裁系统的底层实现与技术架构分析

Hitboxer SOCD Cleaner&#xff1a;键盘输入仲裁系统的底层实现与技术架构分析 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏领域&#xff0c;键盘输入精度直接影响玩家操作表现。传统键盘在处理同…...

OV5640摄像头数据流抓取与仿真全攻略:从DVP时序到Testbench调试技巧

OV5640摄像头数据流抓取与仿真全攻略&#xff1a;从DVP时序到Testbench调试技巧 在FPGA图像处理系统中&#xff0c;OV5640作为一款高性价比的500万像素CMOS传感器&#xff0c;其DVP接口的数据采集可靠性直接影响整个系统的图像质量。本文将深入探讨如何构建稳健的数据捕获逻辑&…...

避坑指南:合宙ESP32-C3连接MPU6050时常见的I2C通信失败与数据跳变问题

ESP32-C3与MPU6050实战避坑手册&#xff1a;从I2C通信失败到数据稳定的全链路解决方案 当你在深夜调试ESP32-C3与MPU6050的组合时&#xff0c;突然发现串口监视器不断弹出"not find MPU6050"的红色警告&#xff0c;或者读取到的加速度数据像过山车一样疯狂跳动——这…...

蓝牙、Wi-Fi、5G、NB-IoT四大无线技术核心差异与选型指南

1. 无线通信技术全景概览&#xff1a;从身边到万物每天一睁眼&#xff0c;我们就被各种看不见的“波”包围着。手机自动连上家里的Wi-Fi&#xff0c;耳机里传来蓝牙音箱的音乐&#xff0c;出门后手机信号满格&#xff0c;甚至街边的智能路灯、家里的智能电表&#xff0c;都在悄…...

用STM32F103C8T6驱动Ra-01SC模组实现点对点通信(附完整代码与接线图)

STM32与Ra-01SC模组实战&#xff1a;从零搭建LoRa点对点通信系统 在物联网和远程监测领域&#xff0c;LoRa技术以其低功耗、远距离的特性成为无线通信的热门选择。Ra-01SC模组作为一款高性价比的LoRa模块&#xff0c;配合STM32F103C8T6这款经典MCU&#xff0c;能够快速构建稳定…...