qt 通过类实现画图_QT案例IDE编写 通过枚举实现编码切换

低谷期一定要默默的熬过去,别去打扰任何人,否则留下的只是别人的笑柄,不论幸或不幸,你的挣扎无人能见,无人能懂。。。

----  网易云热评

一、定义一个枚举

enum MyCode{    utf_8,gbk};

二、定义一个枚举变量,默认设置为utf_8

enum MyCode flag;flag=utf_8;

三、设置编码按钮槽函数

void MainWindow::on_actionUTF8_triggered(){    flag=utf_8;    ui->label->setText("当前以UTF8编码显示");}void MainWindow::on_actionGBK_triggered(){    flag=gbk;    ui->label->setText("当前以GBK编码显示");}

四、编写打开按钮槽函数

1、打开一个文件,获取文件目录

#include   //文件对话框QString path=QFileDialog::getOpenFileName();//获取文件路径    if(path.isEmpty()) //如果路径是空,跳出    {        return;    }

2、将Qstring转换为char *,fopen需要char *

 std::string str=path.toStdString();       const char *filename=str.c_str();解决中文路径    std::string str=code->fromUnicode(path).data();    const char *filename=str.c_str();

3、打开文件,如果有中文,需要转换gbk

FILE *fp;    errno_t err;    if((err=fopen_s(&fp,filename,"rb"))!=0)    {        cout <<"打开文件失败";        cout <        return;    }    cout <<"打开文件成功";

4、循环读取文件内容,每次读取一行fgets()

  char buf[1024];    QString str1="";    while (1) {        memset(buf,0,sizeof (buf));        fgets(buf,sizeof (buf),fp);        if(flag==utf_8){  //判定是那种编码,并显示出来            str1=str1+buf;        }else if (flag==gbk){            str1=str1+code->toUnicode(buf);        }        if(feof(fp)){            break;        }

需要注意的事项:

(1) 包含头文件 #include

(2) 定义全局变量 QTextCodec *codec;

(3) 构造函数内部初始化:

codec = QTextCodec::codecForName("GBK");

(4) gbk > utf-8:codec->toUnicode()

(5) utf-8 > gbk: codec->fromUnicode()

欢迎关注公众号:顺便编点程

1a74a9bbdc273f6d641f2e2fc7515bf4.png

4f2d7bb26e75a67cba361457142b5966.png

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

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

相关文章

美国在人工智能领域亟待解决的5大难题

来源&#xff1a;战略前沿技术据C4ISRNET网站报道&#xff0c;根据2018年《国防授权法案》&#xff0c;美国国会组建了由多名技术专家组成的人工智能国家安全委员会&#xff0c;以指导美国人工智能技术的发展。该委员会由谷歌母公司Alphabet前负责人埃里克施密特&#xff08;Er…

查看ie保存的表单_小学信息技术gt;搜索保存网页教师资格证面试模板

中小学教师资格证考试面试真题备考纸&#xff1a;小学信息技术《搜索保存网页》微博中小学教师资格证考试小学信息技术《搜索保存网页》一、考题回顾试讲题目1.题目&#xff1a;搜索保存网页2.内容&#xff1a;搜索引擎是一个对因特网上的信息资源进行搜集整理&#xff0c;为人…

一线专家谈2020年人工智能落地趋势

来源&#xff1a;海豚大数据及人工智能实验室转眼间&#xff0c;2019年只剩下不到两个月了。人工智能的热度依旧&#xff0c;只是在资本市场&#xff0c;看空的投资人也越来越多了。从当年大数据的发展趋势看&#xff0c;这种情况反而对产业发展是有利的。因为这意味着&#xf…

zset中的score_Redis 在项目中合理使用经验总结

背景Redis 是一个开源的内存数据结构存储系统。可以作为数据库、缓存和消息中间件使用。支持多种类型的数据结构。Redis 内置了 复制&#xff08;replication&#xff09;&#xff0c;LUA脚本&#xff08;Lua scripting&#xff09;&#xff0c; LRU驱动事件&#xff08;LRU ev…

八种颠覆未来作战的前沿技术

来源&#xff1a;军事高科技在线目录一、颠覆未来作战的前沿技术系列——脑科学二、颠覆未来作战的前沿技术系列——人体增强三、颠覆未来作战的前沿技术系列——石墨烯四、颠覆未来作战的前沿技术系列——超材料五、颠覆未来作战的前沿技术系列——太赫兹技术六、颠覆未来作战…

Java对象垃圾回收调用,JVM垃圾回收之哪些对象可以被回收

1.背景Java语言相比于C和C&#xff0c;一个最大的特点就是不需要程序员自己手动去申请和释放内存&#xff0c;这一切交由JVM来完成。在Java中&#xff0c;运行时的数据区域分为程序计数器、Java虚拟机栈、本地方法栈、方法区和堆。其中&#xff0c;程序计数器、虚拟机栈和本地方…

hp

命令组成hpacucli [parametervalue] 查看&#xff1a; 查看所有控制器状态 hpacucli ctrl all show 查看slot 0阵列信息详细状态 &#xff08;可以查看物理磁盘和逻辑磁盘的对应关系&#xff09;1&#xff09;hpacucli ctrl slot0 show config detail2&#xff09;hpacucli ct…

报告|机器人行业深度报告:机器人产业价值与回报相关度分析

来源&#xff1a;机器人大讲堂2009&#xff5e;2018年中国工业机器人保有量在全球保有量的占比稳步提升。据IFR数据&#xff0c;截止2018年底&#xff0c;中国工业机器人保有量达到64.94万台&#xff0c;全球占比为26.97%。2013&#xff5e;2018年间中国新增工业机器人中国产品…

汉字的ascii码值范围_ASCII代码

同学们&#xff0c;我们都知道计算机只能接受二进制信息&#xff0c;很显然直接给出英文的ABCD计算机并不认识&#xff0c;那为何敲击键盘屏幕就可以显示出对应的字符呢&#xff1f;为了解决这个问题&#xff0c;计算机采用一套编码&#xff0c;每个编码都是唯一的&#xff0c;…

从ICLR提交论文看机器学习的趋势和风口

大数据文摘出品来源&#xff1a;deepsense2013年才举办第一届的ICLR&#xff08;The International Conference on Learning Representations&#xff09;发展迅猛&#xff0c;如今已成为是最重要的国际机器学习会议之一&#xff0c;甚至可以和ICML&#xff0c;NeurIPS和CVPR这…

php 登录安全认证,介绍几种常用的web安全认证方式

本文为大家介绍了五种常用的web安全认证方式&#xff0c;具有一定的参考价值&#xff0c;希望能对大家有所帮助。1、Http Basic Auth这是一种最古老的安全认证方式&#xff0c;这种方式就是简单的访问API的时候&#xff0c;带上访问的username和password&#xff0c;由于信息会…

日期选择控件-laydate

laydate控件非常简单易用&#xff0c;只需要调用一个个函数就可以轻松实现日期时间选择。 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%><%String path request.getContextPath();String basePath request.getS…

这个“大脑”收获一份大奖!

来源&#xff1a;新华社第17届亚洲-太平洋通讯社组织&#xff08;亚通组织&#xff09;全体大会8日在韩国首尔闭幕。大会颁发了亚通组织卓越通讯社品质奖&#xff0c;中国新华通讯社与越南通讯社分别获奖。这是亚通组织主席、阿塞拜疆国家新闻社社长阿斯兰阿斯兰诺夫&#xff0…

检查用户名是否存在的servlet代码怎么写_Servlet详解!!!

1 掌握 请求转发2 掌握 请求重定向3 掌握cookie1. 请求转发介绍(1) 为什么需要请求转发?以此请求的处理需要多个Servlet的联动操作,第一个Servlet需要用到其他Servlet已经声明的逻辑处理代码(2) 请求转发的本质是什么&#xff1f;其实就是在一个Servlet中调用其他的Servlet2. …

学习人工智能必须攻克三道门槛:数学基础、英语水平与编程技术

来源&#xff1a;搜狐广义的说&#xff0c;人工智能包含诸多不同方法&#xff0c;其主旨是让程序像一个智能体一样解决问题。机器学习是实现人工智能的一种方法&#xff0c;它不完全依靠预先设计&#xff0c;而是从数据中进行总结&#xff0c;达到模拟记忆、推理的作用。包括诸…

【智能驾驶】自动驾驶深度感知技术对车和行人的检测

来源&#xff1a;小马智行第二场技术沙龙今天我主要想分享自动驾驶感知技术在探索的过程中&#xff0c;采用的传统方法和深度学习方法。传统方法不代表多传统&#xff0c;深度学习也不代表多深度。它们有各自的优点&#xff0c;也都能解决各自的问题&#xff0c;最终希望将其结…

matlab读取其他位置,将文件的数据读取到matlab中,进行编辑,然后将其保存到其他位置...

将文件的数据读取到matlab中&#xff0c;进行编辑&#xff0c;然后将其保存到其他位置 我有一个名为EXP1_SQ1_Template.txt的文件。这是一个简单的文本文件&#xff0c;包含以下8行&#xff1a;LOAD BOX 1 SUBJ M1_299633_D295158_JUN191910_Aut_ERROR2 EXPT St(m)_Se(n)_Rat1 …

中国信通院《新型智慧城市发展研究报告》

来源&#xff1a;云头条本报告结合新时期我国新型智慧城市的建设重点&#xff0c;围绕顶层设计、体制机制、智能基础设施、智能运行中枢、智慧生活、智慧生产、智慧治理、智慧生态、技术创新与标准体系和安全保障体系等十大核心要素&#xff0c;深入分析研究了我国新型智慧城市…

oracle 内存分析工具,IDE 中的分析工具

IDE 中的分析工具Oracle Solaris Studio IDE 提供的交互式图形分析工具可用于检查在 IDE 内部运行的项目的性能。分析工具使用 Oracle Solaris Studio 实用程序和操作系统实用程序来收集数据。可通过 "Profile Project"(分析项目)按钮使用分析工具。Monitor Project(…

关于直播,所有的技术细节都在这里了(2)《转载》

本文转载置顶&#xff1a;http://blog.ucloud.cn/archives/694 感谢作者无私的奉献精神&#xff01; 上篇《 关于直播&#xff0c;所有的技术细节都在这里了(1)《转载》 》我们讲述了如何让直播内容以“最短”路径从主播到观众上&#xff0c;传输层面获得最低延迟&#xff0c;在…