- 博客(23)
- 资源 (5)
- 收藏
- 关注
原创 QT中 unsigned char数组 转换成 QString
QT中把unsigned char数组 转换成 QString类型的一个简单方法如下:unsigned char str1[5]={0x15,0x22,0xc0,0xf5,0xaa}; char str2[5] = {0};sprintf(str2,"%x%x%x%x%x",str1[4],str1[3],str1[2],str1[1],str1[0]);QString ...
2019-04-28 15:59:39
13742
1
原创 Qt5 QpushButton 实现长按功能
Qt5中的QpushButton提供了许多槽函数,其中pressed和released这两个槽函数组合起来可以实现按键测长按下实现某个功能。实现原理是:定义一个定时器timer,编写一个函数实现你在长按时希望实现的功能,连接timer的超时信号与你写的函数,当按下按键触发pressed,在该槽函数下开启定时器timer->start,当松开按键触发released,在该槽函数下关闭定时器...
2019-04-26 17:08:42
3173
原创 基础排序算法之——选择排序,插入排序,快速排序
选择排序:假设长度为n的数组arr,要按照从小到大排序,那么先从n个数字中找到最小值min1,如果最小值min1的位置不在数组最左端(也就是min1不等于arr[0]),则将最小值min1和arr[0]交换,接着在剩下的n-1个数字中找到最小值min2,如果最小值min2不等于arr[1],则交换这两个数字,以此类推,直到有序,时间复杂度O(n^2)。代码如下:void select...
2019-03-25 16:24:24
439
原创 从OpenCV源码到arm动态库的全过程
最近两天成功把OpenCV移植到arm开发板,过程中遇到许多问题,于是写下此篇文章记录一番,方便自己日后复习,或许还可以帮助到其他人。OpenCV移植所需要做的东西还是挺多的,所以文章比较长。移植过程参考了 KayChanGeek 大神的一些关于OpenCV移植的文章。移植用到的工具如下:1、Ubuntu 16.04,64位2、cmake,用于生成编译OpenCV源码的Makefi...
2019-03-25 13:20:18
1271
3
原创 QT 基于QMediaplayer类的视频播放,指定播放位置
利用QT的Mediaplayer类来做播放器播放视频的时候,可以利用label控件来指定视频播放的位置,以便以我们可以在其他位置设计其他空间,而不受视频播放的影响。代码如下:void video::video(QWidget *parent) : QWidget(parent), ui(new Ui::video){ ui->setupUi(this); ...
2018-12-25 20:01:56
6137
2
原创 QT QMediaplayer 的duration()函数获取不到正确时间的问题
QT关于QMediaplayer 的duration()获取的音视频时间长度为0的问题。 在QT中,使用QMediaplayer类可以很方便地实现视频的播放,而在QMediaplayer类中有个duration函数可以直接获取所打开视频的总时间长度。但使用后你会发现duration()返回的居然是个0。 认真看过帮助文档你就会发现其实帮助文档已经说明了这个问题的解决方法:The valu...
2018-12-25 15:06:33
7962
6
原创 C++利用命名空间实现变量的间接访问
C++利用自定义命名空间实现变量的间接访问 要求:变量 val 放在独立的 .cpp 文件的自定义命名空间中,在main函数中访问变量val实现代码如下:myname.h#ifndef __MODULE_H#define __MODULE_H//自定义的命名空间namespace val{ //声明函数 int getval(); void setval(int...
2018-12-08 17:16:47
697
原创 C语言通过 sqlite3 的API进行开发
sqlite3除了可以通过命令行进行操作之外,还可以用接口函数进行开发,流程如下:(1)新建、打开数据库文件,int sqlite3_open(const char *filename,sqlite3 **ppDb);返回值:成功返回SQLITE_OK,失败返回其他宏,具体可以查询sqlite3文件夹的头文件参数:filename——路径名 ppDB——数...
2018-12-04 20:33:46
2113
原创 嵌入式数据库 sqlite3 移植及入门知识
sqlite3是嵌入式设备使用的开源数据库,具有占内存小、使用方便等优点。sqlite3库可在其官网上直接下载,sqlite3移植:要使用sqlite3,首先得把源码库移植到你自己的设备上,其移植过程比较简单,步骤如下:1、解压源码库压缩包:参考命令: tar -jzf sqlite-autoconf-3260000.tar.gz2、进入解压出来的文件夹后,输入 ./con...
2018-12-04 20:05:34
768
原创 Linux C下 fcntl() 函数与 flock 结构体 实现文件的加解锁
fcntl是计算机中的一种函数,通过fcntl可以改变已打开的文件性质,实现对指定文件描述符的各种操作。头文件:#include< fcntl.h>fcntl其函数原型如下:int fcntl(int fd, int cmd, ... /* arg */ );其中,操作类型由cmd决定。cmd可取如下值:F_DUPFD:复制文件描述符 F_DUPFD_CLOEXE...
2018-11-24 11:13:16
1069
原创 C语言库相关知识及简单库的制作
库即二进制形式的目标模块,使用库可以很方便对程序进行模块化设计,方便对某些固定功能的重复使用,方便对某些功能进行更新。库与.c文件关系如下图:库分为两种类型,即静态库和动态库;静态库扩展名.a ,库中封装的二进制代码,在链接阶段被复制到调用模块中,调用模块运行时不再需要静态库的支持;动态库扩展名.so ,库中封装的二进制代码,在链接阶段不会复制到调用模块,被嵌入到调...
2018-11-21 20:27:34
526
原创 Hive与HBase
什么是Hive:Hive实际上是一款开源的数据仓库,它是建立在Hadoop基础设施之上的,底层文件系统是HDFS。什么是HBase:HBase是一种键值系统的数据库,nosql数据库之一,基于列式存储。它也是基于HDFS。两者区别:通过定义就可以清楚知道,Hive是数据仓库,HBase是数据库,两者是有着很大区别的,如:Hive适合海量数据的挖掘和分析,不支持更新、索引等事...
2018-10-27 15:44:39
1113
原创 esp8266+单片机之最最简单(AT指令)应用(二)
单片机+esp8266 wifi模块的AP模式模块作为服务器与远程客户机进行通信烧写代码前需要先获取到wifi模块的IP地址以及设置模块的wifi名字和密码,以便客户端进行连接#include<reg52.h>#include<stdio.h>#include<string.h>#define uchar unsigned char #d...
2018-10-21 18:32:04
2525
3
原创 esp8266+单片机之最最简单(AT指令)应用(一)
51单片机+esp8266 wifi模块的STA模式模块作为客户端发送数据给远程主机烧代码前需要先配置一下WiFi模块,AT+CWJAP,让其先加入一个有效网络#include<reg52.h>#include<stdio.h>#define uchar unsigned char #define uint unsigned intvoid del...
2018-10-21 16:29:36
7257
11
原创 ESP8266 AT指令入门调试及应用
ESP8266是一款低功耗,便于开发的WIFI模块,据说其内嵌了32位处理器,并且有自己的操作系统和wi-fi协议栈。ESP8266具有两种开发方式,即基于协议栈给出的API接口进行开发和基于AT指令进行简单开发。对于新手而言,AT指令开发无疑是最佳选项。这里主要讲解我使用8266时用到AT指令,详细的指令解释可以在网上或者在我博客的资源中下载。开发中用到的工具也可在我的资源中下载...
2018-10-20 16:48:20
5455
2
原创 数据库与数据仓库
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,随着信息技术和市场的发展,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一...
2018-09-30 08:37:52
305
原创 关于C语言fgets函数的问题
C语言中从键盘输入的函数有好几个,fgets就是其中之一。今天我用fgets函数写代码时也遇到一个问题:在第一次调用fgets函数后程序不会阻塞,而是输出一个回车键,待第二次遇到fgets函数时,程序才阻塞。经过好长时间的排查,才发现问题所在——在第一次调用fgets函数时,输入缓冲区有内容,导致fgets直接从输入缓冲区取出了数据进行输出,就会有上述问题出现。问题找到了,解决起来就简...
2018-09-26 12:25:34
1904
原创 蓝桥杯第三届省赛代码
代码是我当初练习时写的,可供参考,其余各届代码可在我的博客中下载//主函数代码#include "iic.h"#include "keyscan.h"uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};uchar code table1[]={0x40,0x79,0x24,...
2018-09-21 19:22:05
643
原创 双向循环链表的排序
//排序void sort(dlist_t head){ dlist_t tmp = head->next,p = NULL,q = NULL; //将链表置空 head->next = head; head->prev = head; while(tmp!=head){ //保存原链表中tmp的下一个节点 ...
2018-09-21 18:39:07
3910
1
原创 冒泡法原版及其改进版
//原版void m_sort(int *a,int n){ int i,j,k; for(i=0;i<n-1;i++) { for(j=0;j<n-i-1;j++) { if(a[j]<a[j+1]) { k = a[j];...
2018-09-21 18:37:02
190
原创 C语言编写身份证确认程序,Linux版
身份证验证程序原理 将身份证前17位数字依次和以下17个数字相乘(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2)然后将所有的乘积相加对11取余,根据余数从以下11个数字中找到校验码(1,0,X,9,8,7,6,5,4,3,2,1)把校验码和身份证第18位比较,相同身份证为真,否则为假#include<stdio.h>...
2018-09-21 18:07:59
2948
原创 C语言一维数组小应用
输入一个整数,统计数位数字的个数。#include<stdio.h>int main(){ int a[10]={}; int num,i=0,j,flag=1; printf("请输入一个整数:"); scanf("%d",&num); for(;num!=0;num /= 10) a[num%10]++; ...
2018-07-06 12:36:43
923
基于QT的简单视频播放器
2018-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人