- 博客(284)
- 资源 (11)
- 问答 (2)
- 收藏
- 关注

原创 【精华】详解Qt中的内存管理机制
前言内存管理,是对软件中内存资源的分配与释放进行有效管理的方法和理论。众所周知,内存管理是软件开发的一个重要的内容。软件规模越大,内存管理可能出现的问题越多。如果像C语言一样手动地管理内存,一会给开发人员带来巨大的负担,二是手动管理内存的可靠性较差。Qt为软件开发人员提供了一套内存管理机制,用以替代手动内存管理。下面开始逐条讲述Qt中的内存管理机制。一脉相承的栈与堆的内存管理了解C语言的同学都知道,C语言中的内存分配有两种形式:栈内存、堆内存。栈内存栈内存的管理是由编译器来做的,栈上申请的内
2021-08-16 20:00:45
6631

原创 【GUI开发】图像处理类软件的浏览功能实现模型
图像处理软件包括但不限于:图片浏览器,2D地图浏览器、图片编辑器等软件。为了处理大分辨率图片,一般采用GDAL加载图像,GDAL可以动态加载图像的一部分,可以建立图像金字塔,优化加载速度。一般的图像处理软件都需要对加载的图像进行放大、缩小、平移操作。首先明确:放大是指图像细节增加,可见范围减少的一种浏览方式,缩小是指图像细节减少,可见范围增加的一种方式下面介绍如何实现。编写代码前,需要建立图像浏览所使用的观察模型。如下图所示:其中,显示窗口是指用于绘制当前浏览内容的窗口,观察区域是指,
2021-06-27 17:38:26
240
2

原创 【编译原理】二、理解BNF
总体理解一个源码文件本质上就是一棵树,即数据结构中的树。解析源码的本质就是将一维的字符串序列转换为一颗语法树。这个可以自己对着源码理解,代码中的缩进就是一种树层次的体现。BNF范式BNF范式本质上就是树形分解,很简单嘛。前端代码解析的难点就在于BNF,对于对数学不敏感的人来说,看到公式就很烦(像我一样)。那么我们就从计算机专业的角度来掌握它。产生式产生式就是将语法的分解规则表达出来的等式。如句子 = 主 + 谓 + 宾将语法规则描述出来是为了便于代码实现,便于计算,所以产生式可以看做
2021-01-24 11:15:31
23090
3

原创 Qt实现多屏幕多分辨率自适应
最近比较忙,这里仅大概描述一下我的实现思路。运行条件两个屏幕,分辨率不同。Qt软件问题提出前段时间写了一个软件,窗口内有自绘内容。自绘内容里面用的长度单位都是像素。可想而知,在开发者的电脑屏幕上大小都是符合要求的。到这一步都没问题。软件开发完成后发给客户,客户在他的电脑上运行,也没问题,毕竟分辨率差不多。偶然一次使用配有高分辨率显示器电脑运行软件,在4k屏下,软件出现了以下问题:整体尺寸和某些自绘内容(线条形状)变得很小,原因是屏幕分辨率升高了,像素更密集,相同个数的像素长度看起来更
2020-10-14 20:40:34
4151
2
原创 什么是路由表
当应用程序向一个ip地址传递数据的时候,如果系统中只有一张网卡,那么数据没得选择,只能通过这个网卡向外传递。但是如果系统中有多张网卡呢,应该走哪张网卡?这就需要一个规则来确定了。路由表就是这样的一个规则表,操作系统根据当前路由表的配置选择从哪个门,也就是哪个网口出去,就这么简单哈。学习网络技术的时候,大部分时间都在学习各种协议,路由表往往讲的比较少。但是在实际工程中,网络出现连通性问题的时候,问题经常出现在路由表上。那么路由表是戛干嘛的,为什么需要路由表?
2025-06-05 19:21:39
73
原创 【Linux】systemctl 和 sysctl 的区别
systemctl和sysctl虽然名字相似,但它们是两个完全不同的工具,各自负责不同的系统管理任务。理解它们的区别和正确使用场景,对于 Linux 系统管理来说非常重要。在实际使用中,要根据具体需求选择合适的工具,并遵循最佳实践来确保系统的稳定性和安全性。
2025-05-28 14:19:13
326
原创 通俗解释网络拨号
网络拨号作为连接互联网的重要方式之一,虽然现在光纤和无线网络更普及,但在某些场景下仍然发挥着重要作用。通过选择合适的拨号协议和方式,可以满足不同的网络接入需求。了解不同协议和接口的特点,有助于我们选择最适合的网络连接方案,实现高效、安全、可靠的网络连接。
2025-05-27 21:07:18
890
原创 通俗解释网络参数RTT(往返时间)
RTT是衡量网络性能的重要指标,它直接影响着我们的网络体验。了解RTT有助于我们更好地理解和优化网络性能。在实际应用中,我们需要根据具体场景选择合适的RTT优化策略,以获得最佳的网络体验。同时,理解RTO的概念对于网络传输的可靠性也至关重要。
2025-05-27 17:18:08
860
原创 【嵌入式】ESP32 Flash专题
Flash是嵌入式环境中的“固态硬盘”。在ESP32中,Flash被用来保存代码和数据,下面对ESP32的Falsh进行解读。
2025-05-20 17:07:55
562
原创 【AI】现阶段AI擅长解决哪些问题
以下内容来自于元宝:#mermaid-svg-DvadM4V6AtSN5Kjh {font-family:"trebuchet ms",verdana,arial,sans-serif;fill:#333;color:#333;color:#333;fill:none;原始数据特征提取自动编码器重构误差分析异常评分。
2025-04-19 13:37:56
805
原创 谈谈对固件的初步理解
而单片机这种东西,我们在开发的时候,是需要频繁烧写程序的,所以单片机里的程序,相对于开发者来说,叫固件就不合适了,叫软件更合适。如果我们想要修改芯片内的程序,一般来说,需要用专门的工具,当然还要有新的程序,把新的程序烧写到芯片中替代老的程序的过程,叫“刷固件”。所以呢,一般这种专用芯片,在正常工作的情况下,芯片内的程序是不会被修改的,因为它对主控芯片的接口一般都是做一些数据交互,并没有提供更新芯片内部程序的接口。但是呢,技术在发展,有的芯片厂商为了使用方便,在已有通信接口的基础上,增加了直接刷固件的接口。
2025-04-16 00:37:56
355
原创 C/C++不透明指针
今天在ESP32编程中又看到了这个词,这个词出现在cursor回答中。它和头文件中的前置类型声明的原理一样,只不过惯用写法不太一样,了解就好。
2025-04-15 19:48:17
196
原创 SPI很多场景下是以半双工的方式工作
SPI(Serial Peripheral Interface)在协议规范层面被定义为全双工通信,但由于实际应用中的外设实现、硬件设计或协议限制,其工作模式可能表现出半双工特性。SPI协议通过独立的MOSI(主设备输出/从设备输入)和MISO(主设备输入/从设备输出)两条数据线实现双向数据传输15。例如,主机通过MOSI发送一个字节的每一位时,从机通过MISO返回对应位的数据,形成环形数据流15。协议优化设计 无 主设备发送填充数据以触发从设备响应(如读取ADC值时发送无效字节)67。
2025-04-07 16:13:53
387
原创 【深度学习】不管理论,入门从手写数字识别开始
通过第一个深度学习案例,能够总体掌握代码结构和流程。理论虽然还差很多,但是大体上能够对深度学习有大概的印象。深度学习大体上做的事情,就是从已有数据中发现规律,利用这个规律,再对新的输入数据进行响应,由经验数据预测/计算出新的结果。当已有数据非常非常多的时候,预测/计算的准确率理论上来说应该会越来越高,但是能够达到100%?我觉得只能是逼近100%,做不到100%。
2025-03-30 21:24:10
577
原创 gcc怎么禁用某个优化
arm-hisiv600-linux-g++: 错误: unrecognized command line option ‘-fnoaggressive-loop-optimizations’检查编译器版本:某些优化选项仅在较新 GCC 版本中支持(如 -fno-aggressive-loop-optimizations 需 GCC 4.8+);gcc -O2 -fno-unroll-loops -o program source.c # 在 O2 级别下禁用循环展开。// 禁止优化此变量。
2025-03-22 10:24:57
495
原创 关于转嵌入式的一点想法
一方面,我们要拥抱AI,利用AI带来的机会,提高个人的生产力,创业创新。为了稳住当前的工作,保证生活质量,我们需要提前规划,及时调整自己的技术路线,摒弃一些相对简单重复,技术含量不高的工作,要么转型项目管理,要么转向受AI影响较小的更底层的开发。当然,我个人也是对嵌入式技术栈很感兴趣,方向和机会很多,自己要多思考,做出更优的选择。普通人能做的只有拥抱AI,拥抱趋势。AI的发展,让软件开发的门槛越来越低了,软件开发人员的护城河即将被攻破,软件研发行业不再会像十几年前那么安逸了,传统红利已不复存在。
2025-03-22 10:02:50
191
谁能来打消我的忧虑??
2014-10-18
在别的地方弹出的系统菜单点击菜单项没有反应?
2014-09-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人