自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

撬动未来的支点的专栏

代码与文章并驾齐驱。

  • 博客(237)
  • 资源 (11)
  • 问答 (2)
  • 收藏
  • 关注

原创 掌握Qt构造系统

掌握Qt构建系统

2022-12-20 01:36:31 924

原创 【精华】详解Qt中的内存管理机制

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

2021-08-16 20:00:45 6008

原创 【GUI开发】图像处理类软件的浏览功能实现模型

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

2021-06-27 17:38:26 221 2

原创 【编译原理】二、理解BNF

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

2021-01-24 11:15:31 19836 3

原创 Qt实现多屏幕多分辨率自适应

最近比较忙,这里仅大概描述一下我的实现思路。运行条件两个屏幕,分辨率不同。Qt软件问题提出前段时间写了一个软件,窗口内有自绘内容。自绘内容里面用的长度单位都是像素。可想而知,在开发者的电脑屏幕上大小都是符合要求的。到这一步都没问题。软件开发完成后发给客户,客户在他的电脑上运行,也没问题,毕竟分辨率差不多。偶然一次使用配有高分辨率显示器电脑运行软件,在4k屏下,软件出现了以下问题:整体尺寸和某些自绘内容(线条形状)变得很小,原因是屏幕分辨率升高了,像素更密集,相同个数的像素长度看起来更

2020-10-14 20:40:34 3882 1

原创 【汇编】思考汇编中的两个基本问题

工作八年有余,已走在向linux内核进发的路上。在学习linux内核之前,心里存有一些侥幸,认为汇编可以跳过去。别人封装好,只管使用即可,反正自己又不一定写。在学习过程中,涉及到汇编的部分都是大致看一下设计思路。但是逐渐地,由于跳过的细节越来越多,书慢慢的就看不懂了。积少成多,窟窿越来越大,量变产生了质变。九年前还在大学学习汇编时,不管是考试还是课程设计,其实都很顺利。但是心里一直对什么时候使用哪个寄存器存在疑惑,编写汇编时,没有十足的把握,都是抱着试一试的心态去完成了课程任务。

2024-12-05 09:40:45 472

原创 【Linux】BIOS,操作系统,应用程序的关系

接口的具体细节,调用流程,可以参考书籍或者官方资料。体系架构是首先要把握住的,架构通,方向才能对,努力才不会白费。

2024-11-25 22:46:37 147

原创 linux中的英文

下载时常看到的英文:ETA —— Estimated Time of Arrival。

2024-11-18 00:53:37 99

原创 linux相关资源下载地址

fedora系统:https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/9/Fedora/x86_64/iso/

2024-11-18 00:21:53 118

原创 不要在动态链接库接口中,使用C++标准库中的容器

最后求助网络,发现原来C++标准库容器不能用来作为接口的一部分使用。这和模板的跨库问题是同一个问题。最近程序老是崩溃在调用动态库接口的代码附近,经过半天的代码审查,也没有看出来什么门道。

2024-11-14 22:10:00 209

原创 纪录片合集

最近喜欢看纪录片,这里放些资源:

2024-10-24 23:55:04 81

原创 Linux应用及内核开发最佳学习计划

为什么要学习Linux应用及内核开发?第一当然是因为热爱,第二是因为就业待遇高。如果鱼与熊掌皆可兼得,这个工作还有什么可挑剔的呢?Linux系统的内容可以用浩瀚来形容。从哪下手学习,以什么样的路线学习,对初学者来说,是个大问题。本文就作者实际经验而谈,讲一讲我认为的Linux应用及内核开发最佳的学习计划。声明本文不是卖课的文章,请放心阅读。

2024-10-16 12:27:22 418

原创 做项目与做产品有哪些区别?

一般IT公司的生产业务类型主要分为两种,即做项目和做产品。做项目和做产品主要的盈利模式是什么,区别是什么?技术工作者在选择就业机会的时候,如何根据公司的经营模式,来选择更适合自己的公司呢?

2024-10-10 23:36:22 320

原创 设计模式如何理解与记忆

设计模式就是面向对象编程的套路。说真的,不太好记忆。在理解的基础上,记忆会更加容易。设计模式那么多,有的其实基本不会用到。我们其实只要记住大部分常用的即可,人生有限,不常用的东西,真的不要花太多时间,还有很多重要的东西等着学呢!怎么记住大部分设计模式呢?首先要明确,设计模式是面向对象编程的实践经验。所以,设计模式的核心,是对象。这么想方向就对了。带着上面的总体理解,大家可以去看具体的设计模式,相信会有更深的理解。设计模式需要根据使用场景选择性使用,没有必要就不要用,不要硬用。

2024-09-23 20:49:36 449

原创 针对小开发团队用最低成本提高软件质量的软件开发过程建议

对于小开发团队来说,经典的软件开发管理过程,由于时间进度等原因,在实际开发中实施的程度很有限,这就导致了开发团队总是围绕着某一两个核心开发人员进行,团队的效率和优势发挥不出来,团队没有高效协作,最后就变成一盘散沙,专业性提不上来,质量提不上来,逐渐演变成作坊式开发过程。随着时间的推移,项目和工作量的增多,核心开发人员将不堪重负。这不仅效率低下,而且会导致很大的项目风险和管理风险。所以对小开发团队来说,需要量身定制的软件研发过程,开发模型,研发管理体系。这里我总结实践经验,给出几点建议。

2024-09-23 19:26:57 230

原创 【编译原理】总体把握编译原理

这里容易误解的是,根据生成式解析代码的过程中,是需要查看一定的上下文的,因为我们需要根据已经解析的符号,加上后面出现的符号,来判断语句的类型和内容,这个过程本身就是一种上下文分析的过程,只不过这个上下文范围很小。感兴趣的同学可以看我之前的文章。编译器用生成式来对代码进行词法和语法解析,只需要使用生成式约定的规则,就可以从一串文本中,确定一个符合语法的语句后,就可以明确这个语句的含义,不需要这条语句前面的内容(即上文),和下面的内容(即下文)来确定这条语句所表达的含义,也就是说语句所表达的含义不会有歧义。

2024-09-17 16:20:20 300

原创 CUDA及GPU学习资源汇总

CUDA C Programming Guide 的中文翻译版

2024-09-15 11:46:15 468

原创 模板与泛型编程笔记(一)入门篇

从这个角度去看,那么模板就是一个编译期函数,这个函数最原始的用途是在编译器解析后,生成实例化后的代码。后面慢慢发展成了编译期元函数,从而出现了元编程。《C++新经典 模板与泛型编程》难得的很容易看得懂的好书,作者讲技术不跳跃,娓娓道来,只要花点时间就能看懂。

2024-09-10 23:50:25 228

原创 标准库中的锁和Qt的锁对比学习

C++标准库中的锁lock_guard、unique_lock、shared_lock、scoped_lock、recursive_mutexQt中的QMutexLocker相当于unique_lock和recursive_mutex的合体。QReadWriteLock相当于shared_lock。

2024-09-09 22:17:38 223

原创 C++11 atomic和内存序

以上几篇文章看完,基本上就能理解,为什么有内存序这个东西了,我个人理解是为了对某些计算机系统设计不足或者妥协的补丁程序。这一块文章较多,但是鱼龙混杂,这里贴出来比较好的几篇文章。

2024-09-08 22:27:55 308

原创 瀑布开发,RUP,敏捷开发简述

相对瀑布开发模式更加先进,采用增量迭代更能适应变化,以文档为中心。很多开发团队,特别是很多国企性质的开发团队在用。传统的软件开发过程。它将一个软件开发的整个过程分为若干阶段去执行,重文档,严格按照各个阶段的先后顺序去执行。以用例为驱动,以架构为核心的迭代增量开发模式。包含四个大阶段,九个小迭代的细致划分,包含UML等设计工具。迭代速度更快,增量更小,以人为中心。提出了一系列接地气的新的编程活动,很有意思。对阶段的划分和执行过于简单,难以应对变化,以文档为中心。轻文档,重团队交流,能及时应对变化。

2024-09-08 18:30:58 405

原创 C++推荐文章

-c++11单实例(singleton)初始化的几种方法(memory fence,atomic,call_once)

2024-09-08 14:38:19 214

原创 拓展眼界,青年大学习

任正非:我们向美国人民学习什么

2024-09-08 11:48:47 109

原创 C++智能指针简述

中文名:弱指针。

2024-09-08 00:36:47 377

原创 Linux应用编程学习记录

文件link系统调用创建硬链接,symlink系统调用用于创建软链接。硬链接相当于强指针,软链接相当于弱指针。标准库IO接口带输入输出缓冲,可以减少系统调用次数,提高效率。而linux系统调用则没有缓冲,可以直接操作设备。linux单个进程打开的文件描述符有个数限制。错误处理errno用于记录系统调用的错误码。它是线程本地变量,POSIX规定其必须是线程安全的,linux中正是如此。strerror用于将errno转为字符串。perror用于向标准输出中打印错误消息,并添加消息前缀。

2024-09-03 23:56:04 223

原创 Linux Shell学习记录

查看某个文件的类型信息:file path

2024-09-01 00:14:23 119

原创 linux相关文章汇总

man 与 info --Linux记不住命令的好帮手

2024-08-31 13:17:34 119

原创 Linux动态库搜索路径相关知识文章

Linux -L, -l, -rpath, -rpath-link, LD_LIBRARY_PATH和RUNPATH使用说明

2024-08-31 12:54:28 184

原创 Qt Creator代码片段

/********************************************************************************* @brief :** @author : pivot** @date : %{CurrentDate:yyyy-MM-dd} %{CurrentTime:hh:mm}*****************************************************************

2024-07-13 16:04:22 137

原创 IT从业者对理性上网的十条建议

1. 警惕双面人某些网红,表面上是爱国人士,其实背地里,爱国是工作,赴美是生活。某些网红,表面上是为打工人发声,其实在获得流量和金钱以后,成立公司背地里剥削打工人。网上的东西不要听了就信了,一码归一码,就算一个人说得句句在理,满口仁义道德,也不能代表这个人就是高尚的人。网红明星“塌房”已经随处可见了,不要只看一个人说的,要看他做的。如果看不到他做的,就不要盲目崇拜。2. 不要做二极管世界上的事情不是只有对和错,不是只有好与坏,这只是一种简化的认知模式,或者说应试教育下的思维方式。这种思维方式下

2024-06-01 11:36:21 745 1

原创 使用request-try-notifyState流程实现UI控制与状态反馈的完整闭环

在Qt编程时,我们经常会在界面上添加一些按钮,当按钮被点击时,执行某段代码,例如显示一个对话框、关闭窗口,保存文件等等。这种由UI控件触发某种信号,通过信号槽触发目的代码执行的场景非常多。这种场景下,通常不需要关注目的代码的执行结果,仅仅通过信号触发槽即可完成任务。我们可以用两个单词来描述上述功能场景,即 request-do,即 UI 发出操作请求,触发代码执行。

2024-05-04 10:43:37 627

原创 关注公众号永久免费使用!跨平台软件“批量哈希大师“发布

由本公众号开发的校验和/哈希值计算工具正式发布。批量哈希大师是本公众号原创开发的第一款基于Qt的跨平台工具软件,也是本公众号对跨平台免费软件生态的发展做出的一份努力。作为软件开发人员,我们会经常使用哈希工具来校验文件内容是否被篡改。但我们经常遇到的一个问题是,很难找到一款能够支持跨平台,支持批量计算并长期维护改进的免费软件。批量哈希大师正是为了满足以上需求而被开发出来。

2024-04-19 00:09:35 367

原创 Qt小型项目模板

我们每次通过Qt Creator新建的项目,其目录结构都比较简单。通常情况下,我们都要重新创建常用的源码目录结构,这种做法含有较多的重复劳动,费时费力。同时,笔者发现,每个人创建的项目的源码目录结构,相比之下差异很大。因为每个人对解决某一问题有自己的想法和视角,所以组织代码的方式也不一样。但是,个性抽象的代码组织方式,可能会导致项目协作、项目维护上出现沟通问题。对于小型项目,采用常用的源码组织方式,建立通用项目模板,不仅可以提高效率,同时可以使源码结构更加清晰,提高项目的可维护性。

2024-04-13 10:49:30 348

原创 Qt桌面GUI软件基础测试参考手册V0.0.1发布

下载地址:https://gitee.com/pivotfuture/qt_gui_software_base_test_reference_manual/releases/tag/V0.0.1。本测试手册旨在指导开发者、测试人员,对Qt桌面GUI程序进行软件基础功能测试,帮助减少程序低级别的错误和BUG。一旦您的提议被采纳,您的名字将被写入到贡献者致谢列表中。开发者使用此手册,可以实现在开发阶段对所开发程序进行基础自测,减少程序 bug 数量,减少因排查问题而耗费的时间精力和资金成本。

2024-04-10 23:14:29 454

原创 【三维】关于万向节锁的直白解释

但是如果用机械部件去真正的控制物体的姿态,一般就是用万向节这种机械部件,它本身有bug。为啥,因为万向节的旋转方向之间是有连接的,连接就是限制。在万向节的限制下,想要旋转物体到一定姿态,如果还按照先转a,再转b,最后转c,最后可能在某个位置卡住了,无法旋转。这种状态就是“万向节”锁住了。卡住的位置是在两个或者多个旋转平面重合的时候,就会消失一个旋转自由度。现实世界中,我们想把一个物体摆一个姿态,其实就是先转a,再转b,最后转c。用大脑去想象的话,很简单,完全不会有问题。这是简单问题复杂化的典型代表。

2024-03-31 13:23:17 426

原创 【3ds max笔记】理解三维场景的浏览方式与操作方法

初学3ds max,很容易会被它的浏览方式搞晕,或者想移动物体,切换观察角度,而不知道怎么操作。其实只要梳理一下,就会变得简单。玩这个软件,容易被各种按钮,菜单搞晕。我们学习的时候必须要按模块去学习,其中浏览与操作是基本功,需要梳理明白,不然会学得一头雾水。

2024-03-23 10:01:36 537

原创 【Qt基本功修炼】Qt线程的两种运行模式

QThread是Qt中的线程类,用于实现多线程运行。QThread有两种工作模式,即消息循环模式无消息循环模式两种模式分别适用于不同的场景。下面我们将从多个方面,讲解QThread两种工作模式的区别。在项目中,我们需要根据实际需求选择正确的线程运行模式,合理地实现软件功能,同时提高导致软件的稳定性和可靠性。以上是Qt线程的基本使用方法,可以满足基本的使用需求。但用起来还是稍显麻烦。

2024-02-01 21:27:23 1798

原创 【Git不走弯路】(二)提交与分支的本质

提交与分支是Git中两个基本对象,对初学者而言需要花些时间理解。正如我们之前所说,计算机中很多新概念是新瓶装旧酒。计算机技术来源于需求,服务于需求,需求是计算机技术的出发点和落脚点。梳理清楚工程实践中,版本管理工作的每个需求点和细节,就能摸清Git的来龙去脉。没有魔法,提交与分支的本质就是文件夹。后续文章中,我们将以“文件夹”的思路形象分析Git中的基本操作的具体含义,敬请关注!本文原创发布于Qt未来工程师。

2024-01-21 01:31:52 1029

原创 控制台架构体系学习资源

微软微软官方教程:欢迎查看 Windows 控制台文档!

2024-01-19 10:18:25 374

原创 使用VS2015在win7 x64上编译调试FFmpeg(附源码和虚拟机下载)

在文章《使用VS2017在win10 x64上编译调试FFmpeg(附源码和虚拟机下载)》中,我们在win10+VS2017的环境下基于开源项目ShiftMediaProject完成了FFmpeg源码调试环境的配置。在win7+VS2015的环境下,ShiftMediaProject配置过程和win10+VS2017下类似,但编译问题会更多一些。经过一番排查,将编译问题解决后,即可进行源码调试。原因是代码中检测了系统类型,win7系统下,没有此结构的定义,相关函数也不会被使用。

2024-01-14 21:59:31 604

Qt桌面GUI软件基础测试参考手册V0.0.1.pdf

Qt桌面GUI软件基础测试参考手册V0.0.1,测试指导说明书。

2024-04-20

teraterm-4.90.zip

目前最强大的多功能串口调试软件,最新版,不好找。

2016-03-20

第九届全国大学生电子设计竞赛获奖作品选编

第九届全国大学生电子设计竞赛获奖作品选编

2015-06-01

安卓开发环境配置的批处理

用批处理配置环境,java_home,classpath等,根据提示,轻松配置

2015-03-18

Intel汇编语言程序设计第五版 中文高清

完整的,看起来挺清晰的,学习汇编的第二部好书

2015-03-18

STM32模板工程配置工具

批处理配置STM32模板工具,基本嗾使文件复制的工作,让计算机来做可以省很多事

2015-01-10

编程高手箴言.pdf

经常看看各种书,脱离代码工的境界

2014-12-24

算法导论中文版

算法导论中文版

2014-12-24

计算机网络入门实用教程

外国人写的,书本读起来很流畅,初中级入门,比较结合实际

2014-12-13

批处理标准教程.pdf

批处理入门教程的书,很清晰,这本书入门完全够了

2014-11-30

汇编入门教程chm

图文简单明了,绝对推荐,有十二章,帮助你了解cpu工作原理

2014-11-26

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除