Qt表格入门(优化篇)
摘要:
为提升大数据量下的渲染性能,本文通过 QStyledItemDelegate 直接绘制单选按钮(使用 QStyleOptionButton 和 drawControl),并在 editorEvent 中处理点击逻辑,避免创建真实控件,显著优化了加载与显示效率。
关键词:
QStyledItemDelegate、QStyleOptionButton、drawControl、editorEvent、优化 ...
Qt正则表达式同时匹配多个关键词
摘要:
这篇博客实现了在Qt环境中利用正则表达式匹配多个关键字的功能。
关键词:
Qt、正则表达式、搜索、分割、同时搜索、与、高级搜索、QRegularExpression
需求描述:
利用正则表达式实现多个关键词的搜索功能;
多个关键词之间是“与”的关系;
多个关键词之间用“-”符号连接。
版本:Qt5.14.2
...
Lambda表达式
用法
C++11加入了Lambda表达式,这是现代编程语言的一个特点,lambda表达式的优点:
声明式的编程风格:就地匿名定义目标函数或者函数对象,不需要额外写一个声明函数或者函数对象。类似匿名内部类。
简洁:避免了代码膨胀和功能分散,让开发更加高效。
在需要的时间和地点实现功能闭包,是程序更加灵活。
lambda表达式定 ...
指针空置类型-nullptr
先看一段代码:
#include <iostream>
using namespace std;
void func(char* p) {
cout << "void func(char* p)" << endl;
cout << p << endl;
}
void func(int p) {
cout << "void func(int p)" << endl;;
cout << p << endl;
}
int main() {
//int
func(10);
//char*
func(NULL); //这里我希望程序调用func ...
Keil MDK(uVision5)完全指导手册(个人总结,篇幅有限)
目录
环境搭建与安装
基础入门:第一个项目
项目管理与配置
调试技术详解
高级应用与优化
常见问题与解决方案
一、环境搭建与安装
1.1 系统要求
操作系统:Windows 7/8/10/11(64位推荐)
处理器:Intel Pentium 4 或更高
内存:最低2GB,推荐4GB或以上
硬盘空间:至少2GB可用空间
1.2 软件安装步骤
步骤1:下载安装包 ...
基于范围的for循环
c++11基于范围的for循环,语法:
for (Type declaration : expression)
{
// 循环体
}
在上面的语法格式中Type declaration表示遍历声明,在遍历过程中,当前被遍历导的元素会被存储到声明的变量declaration中。expression是要遍历的对象,它可以是表达式、容器、数组、初始化列表等。
如下代码:
#include <iostream ...
使用 C++ 模拟 ShaderLanguage 的 swizzle
swizzle 语法
经常编写着色器的同学应该对 swizzle(重排)语法非常熟悉,方便又灵活,可以说是用过一次便回味无穷。
代码
vec4 color = vec4(1.0, 0.5, 0.0, 1.0);
vec3 rgb = color.rgb; // { 1.0, 0.5, 0.0 }
vec2 xy = color.xy; // { 1.0, 0.5 }
vec4 bgra = color.bgra; // { 0.0, 0.5, 1.0, ...
P4168 [Violet] 蒲公英 (离散化+分块 在线查询区间众数)
P4168 [Violet] 蒲公英
离散化+分块 在线查询区间众数
由于a_i范围是1e9的,记录a_i出现的次数不方便直接用数组记录,但是一共有n个数,我们就可以把它们排序去重,把a_i映射为在n个数中排第几,这样映射后的值域就小于n了,我们就能直接用数组记录了,这就是离散化
将长度为 n 的数组分块,每块长度为 B=sqrt(n)
比如[0,B), ...
[Windows/C] libzip 的编译和使用
本文参考:
Windwos zlib 下载和编译
Windwos 编译 libzip
0. 准备工作
编译器:我使用的编译器是 gcc(MinGW),此时需将编译器目录下的 mingw32-make.exe 改名为 make.exe,方便使用。
你需要 CMake,可以在 https://cmake.org/download/ 下载。下载解压后在 bin 目录下找到 cmake-gui.exe,我们使用的是这个 GUI 程序 ...
从车载HMI到数字座舱平台:基于Qt与Qtitan UI组件的汽车嵌入式软件界面开发方案
随着汽车电子架构持续升级,软件在整车系统中的重要性不断提升。从早期的车载信息娱乐系统(IVI)到当前逐渐普及的数字座舱平台,车载软件不仅承担信息展示功能,还需要整合导航、娱乐、车辆控制、驾驶辅助等多种服务。与此同时,用户对界面体验、交互流畅度以及系统稳定性的要求也在不断提高。
在这一背景下,如何构建既 ...
libcurl post请求报错:Server returned nothing (no headers, no data)
问题描述:
同一份libcurl post请求代码,在ubuntu下可以正常执行,而在windows下,curl_easy_perform却返回 52
curl_easy_strerror(52)返回: Server returned nothing (no headers, no data)
原因:
在windows下,libcurl自动添加了一个请求头 Expect: 100-continue
HTTP/1.1 协议里设计 100 (Continue) HTTP 状态码的的 ...
数值类型和字符串之间的转换
在C++11中提供了专门的数值类型和字符串类型之间的转换的转换函数。
数值转换为字符串
使用to_string()方法可以将各种数值类型转换为字符串类型,这是一个重载函,函数声明位于头文件中,函数原型如下:
// 头文件 <string>
string to_string (int val);
string to_string (long val);
string to_string (long long val);
s ...
关键字noexcept
c++中通过throw关键字抛出异常,通过try{}catch{}捕获异常,在对应函数后添加throw()指定可以抛出的异常类型
#include<iostream>
using namespace std;
struct MyException {
MyException(string str) : msg(str) {}
string msg;
};
void func() throw(int ,double,MyException){
// throw(int, double, MyException) ...
Parasoft 汽车嵌入式软件质量与自动化测试解决方案
在智能网联汽车、软件定义车辆(SDV)、高级驾驶辅助系统(ADAS)等快速演进的趋势下,软件已成为汽车行业创新的核心驱动力。从动力系统与安全控制单元(ECU)到互联互通与OTA功能,每一个软件模块都必须确保高质量、安全性与合规性。
全球知名的自动化测试平台 Parasoft ,提供一套覆盖整个汽车软件开发生命周期的自动化测 ...
【C++】实现一个定时器
前言
实现一个周期性调用类。通过TaskTimer构造函数设置周期,通过setTimerFun传入要调用函数和参数,start启动,stop停止。比如要每30秒发送一个心跳包可以把发送包的函数传入定时器,定时器会创建一个线程周期性发送这个包。
实现
TaskTimer主要有开始、停止、设置调用函数与参数,三个方法。
TaskTimer.h
1 #ifndef ...
Parasoft推出AI自主测试工具,让CI/CD流水线主动优化代码质量
自动化软件测试解决方案厂商 arasoft,发布了 Jtest 和 dotTEST 两款产品的 2025.2 版本。此次更新凭借AI技术实现了软件测试的重大突破。新版本新增三大核心能力: AI 驱动的静态分析违规自主修复、基于命令行(CLI)的自主单元测试生成,以及通过 MCP 服务器实现的 LLM(大语言模型)无缝集 ...
李超线段树
李超线段树模板及应用
李超线段树用于一系列平面上的一次函数,维护对于每一个 \(\texttt{x}\) 最大或最小的 \(\texttt{y}\) 值。
模板题
这道模板题非常全面,相比应用李超线段树的时候实现的东西要多的多:
一是给的是横纵坐标,所以斜率要用 \(\texttt{double}\) 类型,整个题的就都要考虑精度问题。
二是输出的是线段 ...
CF161D Distance in Tree + 树上背包
CF161D Distance in Tree
DP状态定义
根据子树位置\(+\)路径长度的统计设计状态。
\(Dp_{u,j}\)表示在以 \(u\) 为根的子树中,到 \(u\) 的距离恰好为 \(j\) 的节点个数。
初始化
\[dp_{u, 0}=1
\]状态转移方程式
在合并子树时来统计答案
\[ans = ans + \sum^k_{j=0}dp_{u,j} \times dp_{j,k-1-j}
\]处理完答案后再合并子树 ...
断言及静态断言
在c++11之前就已经有了断言,但是不是静态断言。
断言
断言是一种编程中常用的手段。在通常情况下,断言就是将一个返回值总是需要为真的判断表达式放在语句中,用于排除在设计的逻辑上不应该产生的情况。
一个函数总需要输入在一定的范围内的参数,那么程序员就可以对该参数使用断言,以迫使在该参数发生异常的时候程序退出 ...
【Parasoft应用案例】在 DO-178C 标准下,实现航空嵌入式软件测试自动化
对于航空航天行业的软件开发来说,DO-178C 是一份不能绕开的标准——它定义了机载软件从设计、编码、测试到验证的核心要求,是 FAA、EASA 等适航机构在认证过程中严格审核的软件规范。
一家负责关键航空导航系统的美国联邦机构(Federal Agency)在为其嵌入式系统获取 DO-178C 认证的过程中,曾遇到一系列现实挑战: ...