自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 Qt之QxOrm

QxORM库是一种为了C++/Qt开发者服务的关系对象映射型数据库的类库,每个类都有简单的C++设置函数,你可以接触到如下特性:持久性:支持最常见的数据库,如 SQLite、MySQL、PostgreSQL、Oracle、MS SQL Server、MongoDB(具有 1-1、1-n、n-1 和 n-n 关系)。序列化:JSON、二进制和 XML 格式。反射(或内省):动态访问类定义、检索属性和调用类方法。

2024-01-16 21:58:00 1288

原创 【网络库学习】libevent篇

对应到libevent中,依然是select、poll、epoll等,但是libevent使用结构体eventop进行了封装,以统一的接口来支持这些I/O多路复用机制,达到了对外隐藏底层系统机制的目的。Reactor,是事件管理的接口,内部使用event demultiplexer注册、注销事件;并运行事件循环,当有事件进入“就绪”状态时,调用注册事件的回调函数处理事件。当有事件到达时,event demultiplexer会发出通知“在已经注册的句柄集中,一个或多个句柄的事件已经就绪”;

2023-11-28 23:06:44 375

原创 Qt之引入Boost

此外,boost库比较大,如果仅用部分特性的话,比如像我仅需要使用smartptr和function的,整个库全部搬过来就很大了,需要使用bcp工具进行裁剪。不过值得注意的是,window下裁剪我一直报错,Linux下裁剪没问题,可以正常使用,建议直接在Linux环境下裁剪,然后复制到win平台。对于boost开发库,部分库可以以源码形式结合到工作代码中,有的必须以库文件的形式,具体看boost的说明。了解常用的几个库的用法,罗的《Boost程序库完全开发指南》对于常用的也介绍了。Boost入门可以看。

2023-11-08 15:18:11 452

原创 Qt之AVI录屏

/******** CScreenShot.h **************/#ifndef __CSCREENSHOT_H#define __CSCREENSHOT_H#include <QRunnable>#include <QPixmap>#include <QMutex>#include <QWaitCondition>#include <QThread>#define CollectGarbage(className)

2022-01-22 21:23:01 1315 1

原创 Qt之程序崩溃原因定位手段

由于Qt主要作为跨平台的界面库存在,在Linux环境下定位问题较Windows下难,主要记录Linux环境下Qt程序崩溃原因定位的方法。Core文件生成backtracebreakpadcrashpad

2022-01-22 20:50:56 4494

原创 Qt之Sqlite insert 方法对比

在台式机上测试Sqlite不同插入方案对比发现:select-stmt是插入速度最快的方式,事务虽然也能加快插入数据,相较于STMT还是慢了不少。#include <QCoreApplication>#include <QSqlQuery>#include <QSqlDatabase>#include <QSqlDriver>#include <QSqlError>#include <QDateTime>#includ

2021-05-09 19:43:08 885

原创 Qt之事件处理

Qt提供5种级别事件处理与事件过滤方法1. 重新实现特殊的事件处理器以QLabel为例,QLabel类中可以重写的虚函数有如下11个函数。如果期望的事件在如下10个中,就可以继承QLabel重写如下的函数。virtual void changeEvent(QEvent *ev) overridevirtual void contextMenuEvent(QContextMenuEvent *ev) overridevirtual void focusInEvent(QFocusEvent *

2021-04-18 21:05:05 225

原创 [侯捷C++面向对象高级开发] 学习笔记上

1.头文件与类声明-----------------Complex.h-------------------template <typename T>class Complex{public: Complex(T r = 0,T i = 0) //带默认实参的构造函数,r,i默认为0 :re(r),im(i) {} Complex& operator+=(co...

2020-04-12 17:20:33 195

翻译 Qt之QObject

1.梗概 QObjects会自我构建对象树,当你创建一个以另一个对象作为父对象的QObject对象时,它被加到父对象的children()列表中,同时当父对象被删除时其也被删除,这被证明是非常适应GUI的应用需求。例如,QShortcut是一个相关窗口的子对象,当用户关闭窗口时,shortcut也会被删除。2.QObject构造/析构的次序 当QObjects在堆上创建出来,对象树...

2020-04-12 17:13:15 259

原创 MISRA C 一点总结

2.语言扩展2.1 汇编语言应该通过a.汇编函数,b.C函数,c.宏三种方式封装并隔离汇编指令; 例如#define NOP asm(" NOP");2.2 源代码应该使用/*...*/类型注释,而不是使用 这样C99类型和C++类型的注释,其作为对C90的扩展;2.3 字符//* 不应该出现在注释中,因为C不支持注释的嵌套;2.4 当源代码段不需要被编译时,应当使用条件编译完成例如#i...

2020-04-12 16:38:58 593

原创 Qt之Q_PROPERTY

Qt样式表分离中需要使用到Q_PROPERTY宏,在代码现在的版本中,使用样式表主要还是使用setStyleSheet(),但是考虑到后续样式表分离,使用QSS就不得不提及Q_PROPERTY了。Qt Style Sheets Examples:https://doc.qt.io/archives/qt-4.8/stylesheet-examples.htmlQ_PROPERTY:http...

2020-04-12 16:11:34 500

原创 Qt之QSignalMapper

资料来源:https://doc.qt.io/archives/qt-4.8/qsignalmapper.htmlhttps://blog.csdn.net/mcgrady_tracy/article/details/6996947在源码中存在大量的信号转发代码,也存在极少量信号转发器代码。从上述问题来看项目源码所出现问题单最终绝大部分可以归结于信号-槽问题。在QT编程中,如果遇到多个控件,...

2020-04-12 14:14:41 188

原创 Qt之正则表达式一二三

/*** RegExpTest.h*/#include <QDialog>#include <QValidator>class QLabel;class QLineEdit;class QRegExp;class QRegExpValidator;class QVBoxLayout;class QString;class Parser : p...

2020-04-12 13:29:36 340

原创 Qt之自建标题栏

在项目中遇到QDialog在双击标题栏时对话框会最大化的情况,由于设置MaxmiumSize等都没有效果的情况下所以自建标题栏。// TitileBar.h#ifndef __TITLEBAR_H_#define __TITLEBAR_H_#include <QDialog>class QEvent;class QMouseEvent;class QPixmap;c...

2020-04-12 10:26:14 517

转载 设计模式之设计原则

名称 解释 单一职责原则 一个类只负责一项职责 里氏替代原则 父类能出现的地方都可以替换为子类,反之则不一定 依赖倒置原则 抽象不应该依赖于细节,细节应该依赖于抽象 接口隔离原则 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 迪米特法则 一个对象应该对其他对象保持最少的了解。降低类与类之间的耦合(高内聚,低耦...

2020-02-19 22:15:01 131

原创 Qt之内存数据库

内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。所以在有大量数据交互时使用内存数据库,等到数据交互量降下来以后同步至本地数据库也是个不错的选择。 下段代码是我事先将部分数据插入内存数据库,便于后续数据交互时查表使用。/** @brief 将自检信息表存入内存数据库...

2019-11-18 19:47:27 2949 2

原创 Qt之QDialog

QDialog特性: 对话框是一个顶级窗口,大多数用于临时任务和短暂交流。QDialog可能是modal或者modeless;QDialog还可以提供一个返回值;QDialog可以提供default buttons;最后QDialog用setSizeGripEnabled()还是可以在低层次中心提供一个QSizeGrip类; QDialog或者其他有Qt::Dialog类型的widge...

2019-10-26 23:27:03 1126

原创 Qt之Map嵌套对象指针的删除(其他容器也适用)

Method 1:使用qDeleteAll h: QMap<int,QString>* MapValueForWarn; QMap<int,QMap<int,QString>*>* MapCatchForWarn; QVector<QMap<int,QMap<int,QString>*>*>* VecCa...

2019-08-19 19:50:01 1787

原创 Qt之Sqlite3 Insert优化

最近在项目遇到一个问题,就是插入大量数据时启动程序会特别卡,一开始我使用线程缓解了一点,但是仍然会卡很久,今天在复习Sqlite相关内容时,突然发现了一个与我很相似的情况。究其主要原因还是执行INSERT语句时还有很大问题。在Sqlite官网关于INSERT的方式中INSERT过程中最后如果使用VALUES那条路会比select-stmt和DEFAULT -VALUES多走很多路,可能这样就导...

2019-07-31 19:43:30 870

原创 Qt之PaintEvent

从Qt官方给的例程可以看出,如果想将绘图加入事件循环共有两种方式:绘图事件和定时器事件两种方式,通常使用前者。(一) painterEvent在绘图事件中,如果想使用update()刷新页面是行不通的,除非使用新的定时器定时刷新页面。painterEvent来自QWidget的virtual protected function,其他一些控件例如QLabel、QLineEdit、QMenu...

2019-07-30 18:50:46 7276 1

原创 MISRA C 规范和 C语言的一些标准

MISRA C规范2.语言扩展2.1 汇编语言应该通过a.汇编函数,b.C函数,c.宏三种方式封装并隔离汇编指令; 例如#define NOP asm(" NOP");2.2 源代码应该使用/*...*/类型注释,而不是使用//这样C99类型和C++类型的注释,其作为对C90的扩展;2.3 字符/*不应该出现在注释中,因为C不支持注释的嵌套;2.4 当源代码段不需要被编译时,...

2019-04-09 09:09:44 1644

转载 linux内核中GNU C和标准C的区别

linux 系统上可用的C编译器是GNU C编译器,它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布。GNU C对标准C进行进一步扩展,以增强标准C的功能。下面我们对GNU C中的扩展进行一下总结:1、零长度数组GNU C 允许使用零长度数组,在定义变长对象的头结构时,这个特性非常有用。例如: struct minix_dir_entry {     __u16 inode; ...

2018-11-08 11:00:52 840

转载 Linux驱动开发常用头文件

#include &lt;linux/***.h&gt; 是在linux-2.6.29/include/linux下面寻找源文件。#include &lt;asm/***.h&gt; 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include &lt;mach/***.h&gt; 是在linux-2.6.29/arch/arm/mach-s3c2...

2018-10-17 10:58:38 178

原创 mini2440开发板-led驱动学习

mini2440烧录进自己配置的内核镜像,commandlines,文件系统,superboot,启动开发板后led一直在按照顺序闪灭,怀疑是led的程序自启动了。[root@FriendlyARM bin]# cat /etc/init.d/rcS 打开脚本后发现有段代码启动led脚本sleep 1/etc/rc.d/init.d/leds startecho " ...

2018-09-24 20:54:15 354

原创 友善之臂mini2440初入门学习的一点历程

许久之前在某宝入手一块二手mini2440开发板,因为忙毕业设计也没空玩玩,这几天在等PCB印刷出来的时间拿出来学习一下。第一步配置好开发环境:交叉编译器,使用的是友善之臂光盘里的arm-linux-gcc-4.4.3.tar.bz,VMware 装的是ubuntu 1404,但是一直不成功,好像是1404版本有点bug,也尝试过arm-2009q3, 后来索性重新装了ubuntu 160...

2018-09-21 14:22:09 6792 1

转载 Linux下连接脚本lds的一点总结(转载部分)

   近期在翻看嵌入式应用开发完全手册中MMU一章中,有一段Makefile代码中使用了lds文件,其Makefile和lds脚本代码分别如下:objs := head.o init.o leds.ommu_bin:$(objs) arm-linux-ld -Tmmu.lds -o mmu_elf $^ arm-linux-objcopy -O binary -S mmu_elf...

2018-09-05 11:35:19 813

转载 内嵌汇编的语法及最常用的arm汇编指令(转载)

1. 在c里内嵌汇编 __asm__ __volatile__( "汇编代码 \n" "汇编代码 \n" :"=r"(c变量名) //第一个冒号表示从汇编里输出到c语言的变量, =号表示在汇编里只能改变C变量的值,而不能取它的值. +号表示可以取变量值,也可改变变量的值. r表示在汇编里用一个寄存器代...

2018-09-05 09:17:56 3045

原创 服务器本地端口数据监听

#! /usr/bin/python3# -*- coding:utf-8 -*-#本代码是旨在接收分批接收数据from socket import *from time import ctimeimport reimport sysdef StringtoInt(String,Num): i = 0 List = [] Stri...

2018-06-04 11:09:33 5102 1

原创 Modbus ASCII模式下的LRC校验算法

在发送报文到平台后重新将数据组织LRC校验码,但是使用Modbus规约文档上给的代码总是与发送报文的校验码不符, 查资料可知LRC校验码的算法有两种,实现起来也很简单.但是却不对.因为这些都是一个字节的, 但是发送报文中其实是两个字节的校验码,其高位在后,低位在前!  这与前面几段数据不同,需要注意下.没办法, 网上的资料虽多,但是能用的也寥寥. 不过有两份资料还是说明出问题的要害, LRC校验C...

2018-05-04 17:52:57 8094 1

原创 Modbus ascii模式 规约转换小结

  想要实现规约转换必须先得理解modbus rtu/ascii/tcp 规约. 我吃了这个亏,一开始就专注于小组的代码, 导致看了半天云里雾里, 随开始找资料, modbus规约那份pdf可以看看, 理解三点:(1) 上下行报文的概念 (2) 正常报文和异常报文 (3) RTU/ASCII报文帧之间的差别. 前面一点那份文档一点没提, 对我这种刚入行的人来说看起来不知所云. 关于理解ASCII模...

2018-04-27 17:13:46 1472 1

原创 modbus ascii报文转换

  在现有项目中增加modbus ascii报文的支持,因为项目中已经有了RTU和TCP报文的支持,所以想讲ascii报文转换成类似rtu的报文格式,利用RTU的函数处理,节省代码量.   根据RTU报文和ASCII报文的特点, 从该博文可以看出https://blog.csdn.net/windytop/article/details/45717655?locationNum=2 ,所以我是用一...

2018-04-24 10:58:46 4728 2

原创 Qt的mysql驱动失效的解决

写完上位机程序之后运行一直出错:QSqlDatabase: QMYSQL driver not loadedQSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7百度后发现这种情况也有不少人发生过,有文章说需要重新编译一下Qt的mysql驱动,并按照之,在编译过程中出错,

2017-11-21 15:10:35 315

转载 Linux下tty/pty/pts/ptmx详解

linux pty tty

2017-02-23 10:37:38 577

转载 python如何实现清屏

作者:金gordon链接:https://www.zhihu.com/question/20917976/answer/32876441来源:知乎著作权归作者所有,转载请联系作者获得授权。在学习和使用python的过程中,少不了要与Python IDLE打交道。但使用 Python IDLE 都会遇到一个常见而又懊恼的问题——要怎么清屏?答案是为IDLE增加一个清屏的扩

2016-12-21 10:16:36 5444

转载 源码阅读——十个C开源项目(转载)

代码阅读——十个C开源项目1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/

2016-10-10 21:49:56 605

转载 常用校验码(奇偶校验码、海明校验码、CRC校验码)

计算机系统运行时,各个部之间要进行数据交换. 为确保数据在传送过程正确无误,常使用检验码. 我们常使用的检验码有三种. 分别是奇偶校验码、海明校验码和循环冗余校验码(CRC) 。奇偶校验码奇偶校验码最简单,但只能检测出奇数位出错. 如果发生偶数位错误就无法检测. 但经研究是奇数位发生错误的概率大很多. 而且奇偶校验码无法检测出哪位出错.所以属于无法矫正错误的校验码。奇偶校验码是奇校

2016-09-29 19:39:02 2023

转载 使用ssh连接虚拟机ubuntu

摘要:主要是解决不能使用ssh远程Ubuntu的问题、使用的远程工具是putty、也可以使用xshell、ubunut12.0.4是装在虚拟机中的、不过这个应该没有什么影响。一:问题的出现前两天使用VMware装了一个ubuntu12.0.4之后、因为常常使用命令行、又喜欢在虚拟机与实体机中切来切去、感觉很不方便、就想在xp中远程ubuntu、遇到了点小意外、经过一会调试解决成功、

2016-09-03 13:36:22 2440

STM32F103C8T6例程

C8T6开发过程中的一些小例程 基本例程-按键(查询方式) 基本例程-USART收发 基本例程-I0操作_LED流水灯 。。。

2018-09-08

空空如也

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

TA关注的人

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