Qt学习记录
Qt学习记录
Qt6读取GBK文件
在Qt5中,有QTextCodec模块,支持各种编码设置。
// Qt5
QCoreApplication a(argc, argv);
auto desk = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
QFile file(QDir(desk).filePath("test.txt"));
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)){qDebug() << file.errorString() << Qt::endl;return a.exec();
}
QTextStream in(&file);
in.setCodec(QTextCodec::codecForName("GBK"));
while (!in.atEnd()){const QString &line = in.readLine();qDebug() << line;
}
return a.exec();
Qt6后,删除了QTextCodec模块,引入了QStringConverter,其中有几个常用的编码,其他编码都不支持,目前只能结合libconv等其他库实现编码转换。但对于windows默认的GBK编码,可以换种方式实现。
// Qt6
QCoreApplication a(argc, argv);
auto desk = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
QFile file(QDir(desk).filePath("test.txt"));
if (!file.open(QIODevice::ReadOnly)){qDebug() << file.errorString() << Qt::endl;return a.exec();
}
QByteArray arr = file.readAll();
auto s = QString::fromLocal8Bit(arr);
qDebug() << s;
return a.exec();
Qt6组件语言设置
部分组件默认语言是英文,使用下面的代码语言改为跟随系统。例如QMessageBox弹框中的Ok会变成确认,Cancle会变成取消等。
QApplication app(argc, argv);
QTranslator translator;
const QString &locale = QLocale::system().name();
const QString &path = QLibraryInfo::path(QLibraryInfo::TranslationsPath);
if (!translator.load(QString("qt_%1").arg(locale), path)) {qDebug() << "load qt_" + locale + ".qm failed";
} else {QApplication::installTranslator(&translator);
}
Widget w;
w.show();
return QApplication::exec();
Qt CMake设置应用程序图标等信息
Windows .rc 文件(资源脚本文件)是用来定义和描述程序中的各种资源的文本文件。这些资源可以包括图标、光标、对话框、菜单、字符串等。.rc 文件是 Windows 应用程序开发中的重要组成部分,通常与 C 或 C++ 代码一起使用,通过资源编译器将其编译成二进制 .res 文件,并在程序中加载这些资源。
- 首先准备一个ico文件,用作应用程序图标。
- 新建c++头文件version.h,宏定义应用程序一些信息。
//
// Created by chunf on 2024/12/26.
//#ifndef VERSION_H
#define VERSION_H#define PRODUCT_ICON "resources/app.ico" // 图标,项目根目录/resources/app.ico#define FILE_VERSION 1,0,0,0 // 文件版本
#define FILE_VERSION_STR "1.0.0.0"
#define PRODUCT_VERSION 1,0,0,0 // 产品版本
#define PRODUCT_VERSION_STR "1.0.0.0"
#define COMPANY_NAME "公司名称"
#define INTERNAL_NAME "zhd.exe"
#define FILE_DESCRIPTION "职代会评测统计程序" // 文件说明
#define LEGAL_COPYRIGHT "Copyright 2024 The xxxx Company. All rights reserved." // 版权
#define ORIGINAL_FILE_NAME "demo.exe" // 原始文件名
#define PRODUCT_NAME "zdh" // 产品名称
#define ORGANIZATION_DOMAIN "https://www.qt.io/" // 域名#endif // VERSION_H
- 新建一个.rc文件
#include "winres.h" // 引入 Windows 资源文件头,包含常见的资源类型定义
#include "version.h" // 引入自定义的版本信息头文件,定义了版本、公司等常量// 图标资源定义
IDI_ICON1 ICON PRODUCT_ICON // 定义一个图标资源,使用 'PRODUCT_ICON' 作为图标的文件名// 版本信息资源定义
VS_VERSION_INFO VERSIONINFO // 定义版本信息资源块FILEVERSION FILE_VERSION // 文件版本号,引用 FILE_VERSION 宏PRODUCTVERSION PRODUCT_VERSION // 产品版本号,引用 PRODUCT_VERSION 宏FILEFLAGSMASK 0x3fL // 允许的文件标志位掩码,0x3fL 表示保留所有标志#ifdef _DEBUG // 如果是在调试模式下FILEFLAGS 0x1L // 设置调试标志位,0x1L 表示调试版本#else // 如果是发布模式FILEFLAGS 0x0L // 设置文件标志位为 0,表示发布版本#endifFILEOS 0x40004L // 操作系统类型,0x40004L 通常表示 Windows 32 位操作系统FILETYPE 0x1L // 文件类型,0x1L 表示可执行文件FILESUBTYPE 0x0L // 文件子类型,0x0L 通常表示通用子类型
BEGINBLOCK "StringFileInfo" // 定义包含文件信息字符串的块BEGINBLOCK "080404b0" // 语言/区域标识符,"080404b0" 是简体中文(中国)的标识符BEGINVALUE "CompanyName", COMPANY_NAME // 公司名称,引用 COMPANY_NAME 宏VALUE "FileDescription", "职代会评测统计程序/2517285841@qq.com" // 文件描述,描述程序用途VALUE "FileVersion", FILE_VERSION_STR // 文件版本字符串,引用 FILE_VERSION_STR 宏VALUE "InternalName", INTERNAL_NAME // 内部文件名称,引用 INTERNAL_NAME 宏VALUE "LegalCopyright", LEGAL_COPYRIGHT // 法律版权信息,引用 LEGAL_COPYRIGHT 宏VALUE "OriginalFilename", ORIGINAL_FILE_NAME // 原始文件名称,引用 ORIGINAL_FILE_NAME 宏VALUE "ProductName", PRODUCT_NAME // 产品名称,引用 PRODUCT_NAME 宏VALUE "ProductVersion", PRODUCT_VERSION_STR // 产品版本字符串,引用 PRODUCT_VERSION_STR 宏ENDENDBLOCK "VarFileInfo" // 版本信息中的可变数据块BEGINVALUE "Translation", 0x804, 1200 // 翻译信息,0x804 表示简体中文(中国),1200 为编码(通常是 UTF-8)END
END
- CMake中加入编译
add_executable(zdhmain.cpputils.hutils.cppwidget.hwidget.cppwidget.uicardconfig.hres.qrcversion.hzdh.rc
)
- 编译并查看结果
这里附上一些常用的配置项说明,更多使用可以查看微软的文档。
相关文章:
Qt学习记录
Qt学习记录 Qt6读取GBK文件 在Qt5中,有QTextCodec模块,支持各种编码设置。 // Qt5 QCoreApplication a(argc, argv); auto desk QStandardPaths::writableLocation(QStandardPaths::DesktopLocation); QFile file(QDir(desk).filePath("test.tx…...
用于汽车碰撞仿真的 Ansys LS-DYNA
使用 Ansys LS-DYNA 进行汽车碰撞仿真汽车碰撞仿真 简介 汽车碰撞仿真是汽车设计和安全工程的一个关键方面。这些仿真使工程师能够预测车辆在碰撞过程中的行为,从而有助于改进安全功能、增强车辆结构并符合监管标准。Ansys LS-DYNA 是一款广泛用于此类仿真的强大工具…...
Android--java实现手机亮度控制
文章目录 1、开发需求2、运行环境3、主要文件4、布局文件信息5、手机界面控制代码6、debug 1、开发需求 需求:开发一个Android apk实现手机亮度控制 2、运行环境 Android studio最新版本 3、主要文件 app\src\main\AndroidManifest.xml app\src\main\res\layou…...
300多种复古手工裁剪拼贴艺术时尚字母、数字、符号海报封面Vlog视频MOV+PNG素材
300复古时尚大小写字母、数字、符号拼贴海报封面平面设计Vlog视频标题动画 Overlay - Cut-Out Letters Animations Pack - Animated Letters, Numbers, and Symbols 使用 Cut-Out Letters Animations Pack 提升您的内容!包含 300多个高品质动画资源,包括…...
免押租赁系统的优势与应用解析
内容概要 免押租赁系统,听上去是不是很未来?其实,它的基本概念就是在租赁过程中,消费者无需交付押金,直接使用所租物品。这样一来,不仅降低了租赁的门槛,也让许多想尝试的用户能够更轻松地参与…...
feign 针对某一个特定接口设置超时时间
一、对feign所有接口设置超时配置 如果是当前feign所有接口的超时配置,需要在 FeignClient 的 configuration 属性中设置。 详情见: https://blog.csdn.net/sinat_32502451/article/details/136884349 二、针对某一个特定接口设置超时时间 调用 feig…...
Chrome被360导航篡改了怎么改回来?
一、Chrome被360导航篡改了怎么改回来? 查看是否被360主页锁定,地址栏输入chrome://version,看命令行end后面(蓝色部分),是否有https://hao.360.com/?srclm&lsn31c42a959f 修改步骤 第一步:…...
GitLab 将停止为中国区用户提供服务,60天迁移期如何应对? | LeetTalk Daily
“LeetTalk Daily”,每日科技前沿,由LeetTools AI精心筛选,为您带来最新鲜、最具洞察力的科技新闻。 GitLab作为一个广受欢迎的开源代码托管平台,近期宣布将停止服务中国大陆、澳门和香港地区的用户提供服务。根据官方通知&#x…...
Linux系统和makefile详解
### Linux系统详解 Linux是一个开源且功能强大的操作系统内核,自1991年由林纳斯托瓦兹首次发布以来,它已经成为全球最流行的操作系统之一。Linux的核心特性包括开源、多用户多任务、高稳定性与安全性,以及良好的跨平台能力。 1. **开源**&a…...
基于导频方法的MIMO信道估计详解
多输入多输出(MIMO)技术作为现代无线通信系统的核心,通过利用多天线阵列在发射端和接收端同时传输和接收多个数据流,显著提高了系统的频谱效率和数据传输速率。然而,MIMO系统的性能在很大程度上依赖于对信道状态的准确…...
#!/bin/bash^M 坏的解释器:没有哪个文件或者目录
#!/bin/bash^M 坏的解释器:没有哪个文件或者目录 问题背景问题分析问题解决dos2unixsedvim编辑器(推荐)在Windows上转换文件格式 最后 问题背景 工作中,在Windows上编写的shell脚本上传到Linux服务器,在执行的时候提示…...
aj-report本地前后端分离部署运行
github项目地址 aj-report-mine 在源代码v1.4版本基础上,本地进行前后端分离部署开发 这里我是进行了整合,把自己在拉取源代码到成功运行过程中的一些东西直接整合,根据下面的步骤即可成功运行 资源获取 夸克网盘(16-github-aj-report-re…...
1435A 信号发生器
1435A 信号发生器 1435系列信号发生器基于创新的技术实现了性能、经济性和体积重量的平衡设计。具有优良的频谱纯度,单边带相位噪声1GHz载波10kHz频偏达到-136dBc/Hz,10GHz载波10kHz频偏达到-116dBc/Hz;具有高功率输出和大动态范围ÿ…...
计算机组成原理的学习笔记(9)-- CPU·其一 CPU的基本概念/流水线技术/数据通路
学习笔记 前言 本文主要是对于b站尚硅谷的计算机组成原理的学习笔记,仅用于学习交流。 CPU(中央处理器) 1. 组成 定义:计算机的核心部件,负责执行指令和处理数据。 组成部分: 核心:多个处…...
【Python】 -- python3 读取 aws athena 表数据
目录 1、环境准备 2、安装环境 3、举例查询某张表数据和执行 add partition 操作 3.1、编辑文件 athena_jdbc.py 3.2、查找 JVM 的动态链接库路径 3.3、保存文件,执行以下命令 1、环境准备 oracle jdk 11centos 8依赖:pandas、pyathenajdbc 和 sq…...
子网掩码计算route命令
子网掩码 - 站长工具 1.子网掩码 子网掩码就是用来遮掩IP地址并划分网段的工具,根据遮掩的位数不同来划分不同的网段。 2.网关 网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用…...
店铺营业状态设置
admineShopController RestController("admineShopController") RequestMapping("/admin/shop") Api(tags "店铺相关接口") Slf4j public class ShopController {//设置一个常量 因为经常使用public static final String KEY "SHOP-ST…...
JavaWeb 开发基础入门
在当今互联网时代,JavaWeb 开发是构建各类网络应用的核心技术之一。无论是大型企业级应用,还是小型的个人网站,JavaWeb 都展现出强大的生命力。今天,就让我们一起踏入 JavaWeb 开发的基础入门之旅。 一、认识 JavaWeb JavaWeb 是…...
Unity Dots理论学习-2.ECS有关的模块(1)
Unity的实体组件系统(ECS)是支撑DOTS模块和技术的面向数据架构。ECS为Unity中的内存数据和runtime进程调度提供了高度的控制和确定性。 ECS for Unity 2022 LTS 配备了两个兼容的物理引擎,一个高级的Netcode package,以及一个用来…...
CentOS下安装RabbitMQ
提示:“奔跑吧邓邓子” 的高效运维专栏聚焦于各类运维场景中的实际操作与问题解决。内容涵盖服务器硬件(如 IBM System 3650 M5)、云服务平台(如腾讯云、华为云)、服务器软件(如 Nginx、Apache、GitLab、Redis、Elasticsearch、Kubernetes、Docker 等)、开发工具(如 Gi…...
【JAVA高级篇教学】第四篇:MySQL 5.7 与 MySQL 8 的区别
MySQL 是最流行的开源数据库管理系统之一,而 MySQL 8 的发布相较于 MySQL 5.7 带来了大量的改进与功能增强。 目录 一、性能改进 二、功能增强 三、安全性 四、开发体验 五、默认排序规则 六、支持的排序规则数量 七、区分敏感性(Sensitivity&…...
【Git】-- 版本说明
Alpha:是内部测试版,一般不向外部发布,会有很多 Bug .一般只有测试人员使用。Beta:也是测试版,这个阶段的版本会一直加入新的功能。在 Alpha 版之后推出。RC:(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台…...
Flink优化----FlinkSQL 调优
目录 FlinkSQL 调优 1 设置空闲状态保留时间 2 开启 MiniBatch 3 开启 LocalGlobal 3.1 原理概述 3.2 提交案例:统计每天每个 mid 出现次数 3.3 提交案例:开启 miniBatch 和 LocalGlobal 4 开启 Split Distinct 4.1 原理概述 4.2 提交案例&…...
云上「算力浪费」,正在掣肘企业应用落地。
投入算力,真的能换来利润吗?这是每个想“入局”大模型的企业都会思考的问题。 人工智能行业一直困于成本,无论从模型训练到推理,都充满了“烧钱”的气息。无法避免的高昂算力,成为企业入局大模型的“铁门槛”。 据多…...
科技创新 数智未来|清科·沙丘投研院走进竹云
12月20日,清科沙丘投研院带领企投家团队走进竹云交流分享,聚焦技术创新、企业数字化管理、行业前沿应用案例等热点议题,深入探讨数字技术如何点燃企业高质量发展的澎湃动力,共话企业数字化、智能化发展之道。 达晨财智股权管理部…...
spring专题笔记(六):bean的自动装配(自动化注入)-根据名字进行自动装配、根据类型进行自动装配。代码演示,通俗易懂。
目录 一、根据名字进行自动装配--byName 二、根据类型进行自动装配 byType 本文章主要是介绍spring的自动装配机制, 用代码演示spring如何根据名字进行自动装配、如何根据类型进行自动装配。代码演示,通俗易懂。 一、根据名字进行自动装配--byName Us…...
EDGE浏览器每次关闭时再次打开保存的密码就消失如何解决
文章目录 EDGE浏览器每次重启的时候保存的密码都消失如何解决? 打开EDGE浏览器点击三个点 点击设置 点击隐私、搜索和服务 找到选择每次关闭浏览器时要清除的内容 将开启的关闭即可...
Python - 获取当前函数中的所有参数信息(名称和值)
代码 import inspect import randomclass P:def start(self, p1, p2, p3None, p4None):arg_info inspect.getargvalues(inspect.currentframe())kwargs arg_info.locals # 获取到所有参数print(kwargs)del kwargs["self"]try:self._start(**kwargs)except Except…...
pyqt5冻结+分页表
逻辑代码 # -*- coding: utf-8 -*- import sys,time,copy from PyQt5.QtWidgets import QWidget,QApplication, QDesktopWidget,QTableWidgetItem from QhTableWidgetQGN import Ui_QhTableWidgetQGN from PyQt5.QtCore import Qt from PyQt5 import QtCore, QtGui, QtWidgets…...
uniapp中实现APP调用本地通知栏通知、震动、本地提示音或者mp3提醒
要在uniapp中实现APP调用本地通知栏通知、震动和本地提示音或者mp3提醒,你可以使用uni-app提供的原生API和插件来实现。 通知栏通知: 你可以使用uni-app的原生API uni.showToast() 或者 uni.showModal() 来实现通知栏通知的功能。可以在需要发送通知的地…...
JS 数组创建、访问、常用方法
文章目录 创建访问常用属性和相关方法1. length 长度属性2. push() 新增元素 - 末尾添加3. unshift() 新增元素 - 开头添加4. pop() 移除元素 - 末尾删除5. shift() 移除元素 - 开头删除6. concat() 复制数组后新增7. slice() 复制数组8. splice() 增删改9. toString() 转字符串…...
【C++】ceil 和 floor 函数的实现与分析
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯ceil 和 floor 函数的基础介绍1. ceil 函数定义与功能示例代码输出结果功能分析使用场景 2. floor 函数定义与功能示例代码输出结果功能分析使用场景 💯自行实现…...
每天40分玩转Django:Django类视图
Django类视图 一、今日学习内容概述 学习模块重要程度主要内容类视图基础⭐⭐⭐⭐⭐View类、URLconf配置通用视图⭐⭐⭐⭐⭐ListView、DetailView等Mixin机制⭐⭐⭐⭐多重继承、功能组合自定义类视图⭐⭐⭐⭐视图定制、方法重写 二、类视图基础 2.1 基本类视图 # views.py…...
运动控制卡网络通讯的心跳检测之C#上位机编程
本文导读 今天,正运动小助手给大家分享一下如何使用C#上位机编程实现运动控制卡网络通讯的心跳检测功能。 01 ECI2618B硬件介绍 ECI2618B经济型多轴运动控制卡是一款脉冲型、模块化的网络型运动控制卡。控制卡本身最多支持6轴,可扩展至12轴的运动控制…...
秒验简介与下载说明
秒验简介与下载说明 产品概述 秒验是一款帮助开发者实现一键验证功能的产品,从根源上降低企业验证成本, 有效提高拉新转化率,降低因验证带来的流失率,3秒完成手机号验证 SDK信息 下载SDK 下载地址 SDK提供Maven和pod引入两种方…...
Redis中的数据类型
文章目录 前言一、字符串(String)应用场景常用命令 二、哈希(Hash)应用场景常用命令 三、列表(List)应用场景常用命令 四、集合(Set)应用场景常用命令 五、有序集合(Sort…...
esp8266_TFTST7735语音识别UI界面虚拟小助手
文章目录 一 实现思路1 项目简介1.1 项目效果1.2 实现方式 2 项目构成2.1 软硬件环境2.2 完整流程总结(重点整合)(1) 功能逻辑图(2) 接线(3) 使用esp8266控制TFT屏(4)TFT_espI库配置方法(5) TFT_esp库常用代码详解(6)TFT屏显示图片(7) TFT屏显示汉字(8) …...
RTOS 基础知识
**实时操作系统(RTOS, Real-Time Operating System)**是一种专为实时性要求设计的操作系统,具有确定性和高效性。RTOS 的系统架构围绕任务调度、时间管理和资源管理展开,以确保系统能够在规定时间内响应外部事件。以下是RTOS的系统…...
【 thefuck 安装与使用】Linux 终端自动纠错工具:一头GitHub上的“草泥马“ - thefuck,妈妈再也不用担心我打错命令行了!
目录 快速安装使用 . 1.简介 2.安装 3.配置 4.补充 官方盗料参考 快速安装使用 快速安装使用,四步即可: #Ubuntu/Debian系统 sudo apt update sudo apt install python3-dev python3-pip sudo pip3 install thefuck #编辑bashrc配置文件 vim ~/.bashrc…...
在Nginx部署Web应用,如何保障后端API的安全
1. 使用HTTPS和http2.0 参考:Nginx配置HTTP2.0_nginx 支持 2.0-CSDN博客 2. 设置严格的CORS策略 通过add_header指令设置CORS头。 只允许来自https://frontend.yourdomain.com的请求访问API location /api/ {if ($http_origin ~* (https://frontend\.yourdomai…...
vue关闭eslint校验及开启debugger
文章目录 在Vue项目中关闭ESLint检查,可以通过以下几种方式实现:修改package.json文件中的eslintScript,将其设置为空字符串或者直接删除。在项目根目录下创建.eslintrc.js文件,并设置rules为关闭所有规则。如果使用Vue CLI创建的…...
docker mysql5.7安装
一.更改 /etc/docker/daemon.json sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io","https:/…...
json字符串或者json文件转换成相应的bean,报错“Unrecognized field xxx , not marked as ignorable”
1. 异常描述 将一个json字符串或者json文件转换成相应的bean的时候,报如下错误: 2. 异常分析 bean中某个字段的get和set方法可能不是工具自动生成的,而是自己写的,譬如字段是“sInfo”,本来get方法是应该写成getsI…...
Windows下C++使用SQLite
1、安装 进入SQLite Download Page页面,下载sqlite-dll-win-x86-*.zip、sqlite-amalgamation-*.zip、sqlite-tools-win-x64-*.zip三个包,这三个包里分别包含dll文件和def文件、头文件、exe工具。 使用vs命令行工具生成.lib文件:进入dll和def文…...
依图科技简介
依图科技(YITU Technology)是中国一家全球领先的人工智能(AI)公司,成立于2012年,总部位于上海。公司专注于计算机视觉、语音识别和自然语言处理等核心AI技术,致力于推动AI技术在医疗、安防、金融…...
BiLSTM模型详解及代码复现(源码)
(需要源码请私信或留言) LSTM基础 LSTM (Long Short-Term Memory) 是一种特殊类型的循环神经网络(RNN),旨在解决传统RNN在处理长序列时面临的梯度消失和梯度爆炸问题。其核心创新在于引入了 门控机制 ,包括遗忘门、输入门和输出门,有效控制信息的流动和存储。这种独特的…...
HTMLCSS:超炫丝滑的卡片水波纹效果
这段代码创建了一个卡片,卡片上有三个波动效果,这些波动效果通过 CSS 的keyframes 动画实现,创建了一个旋转的动画效果。这种效果适用于创建动态的视觉效果,例如音乐播放器的封面、动态背景或其他需要动态效果的界面元素。 演示效…...
8086汇编(16位汇编)学习笔记05.asm基础语法和串操作
8086汇编(16位汇编)学习笔记05.asm基础语法和串操作-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net asm基础语法 1. 环境配置 xp环境配置 1.拷贝masm615到指定目录 2.将masm615目录添加进环境变量 3.在cmd中输入ml,可以识别即配置成功 dosbox…...
【漏洞复现】BIG-IP Next Central Manager OData 注入漏洞(CVE-2024-21793)
免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作…...
Go语言及MongoDB数据库安装配置详解!
Go语言安装 首先讲一下go语言的安装,这部分可直接从官网下载,基本上一键配置的: 官网地址:All releases - The Go Programming Language 选择自己对应系统的安装包,这里官网提供了5种不同的包可自行下载 之后便是默认…...