分类目录归档:编程技术

函数指针&回调函数

在C++开发过程当中,函数指针非常常见,也非常强大,最广泛的用处便是作为回调函数使用,函数指针的强大之处不容小觑,我觉得它可以称为C/C++编程的灵魂之一(是不是有点儿夸张了,好吧,夸张就夸张吧)再括弧一下(其实我也不清楚这篇文章到底是应该以函数指针作为标题还是应该将回调函数作为标题,等写完再做决定吧)

首先我们来引用一下比较官方的定义(出自《C++高级编程》):

  • 在C++中,可以像操作数据一样使用函数;
  • 换句话说,可以获得函数的地址,然后像使用变量一样使用这个地址;
  • 函数指针的类型取决于兼容函数的参数类型和返回类型

继续阅读

使用Qt网络库QNetworkAccessManager发送post请求

这篇文章会很短,就介绍一种QNetworkAccessManager发送post请求的简单方式(注意:方式有很多,下面只是介绍我个人认为最简洁直接的方式)。

如何设置请求头

使用QNetworkRequest的setRawHeader方法,你可以很直接的用键值对的方式设置: 继续阅读

客户端软件在线升级方案(从客户端到服务端实现)

好久没有写文章了,这次介绍一种简单的PC客户端软件升级方案,从客户端到后台实现都是亲自手撸代码实现,并且在实际项目中应用(一般本人介绍的技术方法或者方案都是在实际项目中真实应用,并且介绍的案例都是基于真实项目),话不多说,进入正题。

1  技术背景

PC客户端软件:这里的客户端软件是本人自己业余做的一款机器人控制软件,使用C++/Qt开发;

软件更新后台:使用Python语言开发,web框架采用Flask;

继续阅读

使用C++/Qt编程的一些技巧和总结(一)

这里记录一下使用C++/Qt在日常编程中的一些小技巧和习惯和体会,个人觉得虽然不是高深的东西但肯定会是一些实用的东西。

  • 应该是用代码写界面还是使用拖拽控件来绘制界面呢

这个问题可以说是仁者见仁,智者见智的问题,这个问题可以引起代码派和拖拽派的争论甚至刀剑相向哦,就跟使用tab键还是空格键来缩进代码一样的。我个人觉得如果是简单的测试demo后者简单的小工具,可以使用拖拽,或者对于刚入门,对Qt界面不是很熟悉,但是公司又需要马上做东西出来, 继续阅读

HsrComponents库:链路模块(link)

在面向设备的应用编程当中,各种各样的链路传输功能是非常常用的,并且是完全无关于业务的工具代码,在之前的工作当中,结合自己的经验,同时也参考和借鉴了一些开源库的逻辑,这里值得一提的是QGroundControl,我承认之前在一开始的时候,在项目中我是直接照搬它的逻辑的,但是后来在使用的过程当中,发现了一些问题,便做出了一些修改和完善(PS:当然我会在以后的日子里继续完善),使其可以更加通用于一般的面向设备的应用编程。

继续阅读

开始总结并编写一些开发中常用的C++、Qt库

在日常进行C++终端应用开发的过程当中,我发现在不同的应用中,经常需要重复造一些轮子,做一些重复性的体力劳动,很没有必要;同时,在终端应用的编程中,所开发的应用很多都是与各种各样的设备进行通讯,对设备进行控制,采集数据,分析数据,展示数据等等,所以这里想着将平常常用的功能组件,界面控件,链路控制等功能整理和总结出来,便于在日后的开发当中提高效率,同时将该代码开源道github中,如果有需要,大家可以采用,如果有错误,可以指正,共同进步。(PS:其中有的功能类轮子是自己造的,有些是从网络搜索或者开源项目当中借鉴并在实际使用之后总结而来)。

项目地址:https://github.com/huxingqun/HsrComponents

Ubuntu16.04安装Python3.6的更好解决方案

在之前的一篇文章走向Python世界的大门:安装Python3.6中介绍了在Ubuntu16.04安装Python3.6的方法(我之前的安装方式),但是安装之后我发现系统当中好多异常情况,比如系统设置当中的Language Support无法打开等等一系列系统上的问题,导致这些异常的原因主要是因为我把系统链接python3的指向由原来的Python3.5指向了Python3.6所导致的。后来通过google和百度了一些解决方法,都比较麻烦和不靠谱,庆幸最后还是找到了一个好的解决方案,下面基于解决的问题,重新介绍一下Ubuntu16.4安装Python3.6的方法。

继续阅读

Python开发必备虚拟环境工具:virtualenvwrapper

在初学任何一种开发语言的时候,开发环境的搭建总会出现各种各样的问题,所以我将会在日后把我遇到的典型问题和解决方法都记录下来,方便日后查看。当然也许有人会说,当前我们可以使用Vagrant或者Docker这样的虚拟化或者容器化来做开发,但是我个人觉得掌握这些基本技能很重要,就好比武侠小说里面,真正武功高强的人,离开了神兵利器,照样可以以一敌百,无人可挡。当然,像Vagrant和Docker这样的神兵利器我们也需要去学,这样才能如虎添翼,好了,废话不多说,进入正题。

同样,在接着上一篇文章走向Python世界的大门:安装Python3.6之后,我们在上一篇的基础上,在windows和linux两种环境之下安装Python虚拟环境管理工具virtualenvwrapper。

继续阅读

走向Python世界的大门:安装Python3.6

这是第一篇技术文章,既是为了能够在网络中帮助到一些初学者,同时也是为了在自己的学习道路上做好笔记。

现在我们来进入Python学习第一步,安装Python环境。下面我会介绍Linux系统(Ubuntu16.04.6)和Windows系统(Win10)中分别安装Python环境的过程。

继续阅读