自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JavaScript比较运算符

原始类型比较若为字符串则进行unicdoe编码比较对象类型比较,对于非相等运算符,最终转为字符串比较,而对于相等运算符比较,则最终转为number类型比较。

2023-02-04 17:05:56 703 1

原创 Qt+Mysql数据库(云端)问题解决汇总

1.环境问题解决在不同平台下最常见问题MYSQL driver not loadedwin:可以简单理解driver缺少的问题是相关库缺少的问题,qsqlmysql.dll与qsqlmysqld.dll 或是libmysql.dll与libmysql.lib。QT:MYSQL driver not loaded解决方法 - ShineLe - 博客园0、参考(按对本人帮助从高到低排列) Qt5.14.1 如何编译和使用mysql和mariadb数据库驱动 (15条消息) QMYSQL...

2021-11-05 21:59:51 404

原创 Qt实现简易版的网络调试助手支持多端口监听(服务端)

调试DSP的小伙伴,需要对多个端口的客户端进行发送响应,但是用到的网络助手只支持单一发送,因此找我写了个简单Demo,供大家参考,后续可以考虑将combox作为勾选项,控制特定端口进行发送。界面大概长这个样子,使用ui拖拽绘制的,没有什么好讲的,左边上半区打印接收信息,左边下半区为打印信息。主要代码:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QTcpServer>#inc..

2021-10-22 19:09:49 2335

原创 QUdpSocket服务端接收数据说明(非阻塞)

先说结论吧,QUdpSocket不支持阻塞式访问,正常非阻塞的要么需要信号槽机制访问,要么需要循环判断,导致的结果就是要不丢包严重,要不CPU占用率高,还是建以利用socket自己去实现UDP。参考:QT中UDPSocket丢包问题_rabbitjerry的专栏-CSDN博客_qt udp丢包1.信号槽机制访问#include <QCoreApplication>#include <QUdpSocket>#include <QHostAddress&g

2021-09-23 16:00:18 2330 2

原创 Qt非GUI线程中执行Update函数UI界面假死的问题解决

业务逻辑很简单,就是收到udp数据后,更新绘图参数,然后执行绘图。最开始试过用定时器触发,发现定时器触发容易受到Ui操作事件的影响,导致图像绘制刷新速率肉眼可见的不同。再提高定时器的jing'q...

2021-06-04 22:16:44 1031

原创 C++如何实现二进制数据存储为灰度图

本人是以Qt开发的,奈何数据太大8192*12384字节的数据,直接12Mb,导致QImage生成实例化对象时,老是弹出out memory的输出信息,显示通过分开画图再组合的方式实现了,本想存chun

2021-06-01 22:36:07 736 1

原创 QMainWindow中应用QStatusBar的简单样例

用到StatusBar是因为,需要显示一下TCP的网络信息,IP或者端口以及当前的状态之类的。很简单,首先QMainWindow中有一个函数叫void QMainWindow::setStatusBar(QStatusBar *statusbar)//Sets the status bar for the main window to statusbar.//Setting the status bar to 0 will remove it from the main window. Not

2021-05-25 16:28:00 546 1

原创 Qt如何修改MainWindow中的边界大小

在一次编辑项目中,发现将自己实现的Widget设置为中心页面后,边界总是存在,通过设置自己实现的Widget.setContentsMargins(0,0,0,0)han's

2021-05-25 15:31:26 1884

原创 sqlite3 创建各个形式带默认时间戳的表

想创建一个每次insert数据后,默认带系统时间戳的表,逛了一圈,查到了一些相关方法。发帖记录一下。正如下图所示,除此之外还可以构建其他格式的字符串,其中有些需要注意的问题列一下。基本样例CREATE TABLE time(ID INTEGER PRIMARY KEY,CreatedTime TimeStamp NOT NULL DEFAULT CURRENT_TIMESTAMP);建表查询得sqlite> select * from time;1|2021-04-28

2021-04-28 22:26:50 2071 1

原创 C++简单实现二叉树

#include <iostream>using namespace std; class TreeNode{public: TreeNode(int x) : val(x),leftNode(nullptr),rightNode(nullptr) {} void setLeftNode(TreeNode* node) { this->leftNode = node;} void setRightNode(TreeNode* node) { this-&.

2021-03-05 22:16:43 184

原创 C++函数重载详解

函数重载函数名称相同,但函数参数列表必须不同,此处的函数列表也成为函数特征标。特征标不同则表征了,参数数目、类型、以及排列顺序不同。void print(const char* str,int width);void print(double d,int width);void print(long l,int width);void print(int i,int width);在具体调用这些函数时,编译器会根据特征标完成对应的函数匹配,并完成调用,不过函数重载后,c++会拒绝类型转.

2021-01-06 09:50:37 1303 4

原创 Qt打包发布release程序无法定位程序输入点的问题解决

配置一下系统的环境变量,如下图所示为环境变量配置相应的bin目录,就可以解决了!

2021-01-05 15:10:44 1564

原创 C++非常量引用的初始值必须为左值问题解决以及引用传参

这个问题还得从左值说起,左值最直观形象的解释就是,它一般处于表达式的左侧,它本身是具有内存空间的。在《c++ primer》一书中,文中举出了一个用来交换参数的小例子,并且跟C语言中值传递以及指针传递做了对比,我们清楚的知道,值传递是无法对值做交换的。并且函数参数若为值传递时,进入函数体时,会创建临时变量,并完成一次值拷贝操作,若临时变量空间很大则会很耗时。此外,由于引用传参会对原值进行修改,因此为了避免修改原值的问题出现,可以选用值传递,但既要引用传递,又要保证函数内部值不会对其做修改,那么我们就需要

2021-01-04 17:49:03 3352

原创 c++条件变量的使用详解以及wait()爬坑经历记录

项目场景:上位机上需要实现一个存文件的操作,本来可以很简单的做实现,想着之前看过一个条件变量的例子,所以胆子肥了写来试试。大概实现思路如下,有一个数据线程接收数据,通过按钮操作,来置标志位,从而开始写数入队列,入队操作完成后,通过notify函数调用取数线程,取数线程从队列里拿数。然后通过按钮操作置标志位,退出写数线程,好像线程析构这种操作很不稳定,网上大家还是建议利用标志位,也正是因为标志位的问题,导致了函数一直阻塞在wait函数处,线程无法退出,无法实现关闭文件操作,因此无法完成正常写数。问

2020-11-26 16:38:31 7370 3

原创 C/C++结构体内对指针开辟空间(变长结构体、构造函数实现)

前言最近实验室的小伙伴们突然问我,在结构体内创建指针,如何开辟其内存大小,有种极其简单且易想到的方法,就是在外部对其malloc空间,但是本文可以给出两种比较优雅的实现方式。1.利用构造结构体构造函数实现跟类的实现方式十分接近,在构造函数里实现指定的指针开辟长度,代码很简单,且因为结构体成员共有的问题,在外部也可以对内存做释放。#include <iostream>#include <map>#include <string>using na.

2020-11-25 17:14:20 3488

原创 Qt构造函数中无法获取正确控件大小的问题解决

先看一个简单例子,在widget 中加入一个button,在构造时打印以及show()函数调用后打印button大小,发现不同。原因就是因为加了布局的原因,导致在构造结束之后,控件大小会发生改变一次。重写resizeEvent 或 showEventshowEvent在resizeEvnet之后调用,在show函数之前调用,重写这两者都可以获取正确大小。//头文件protected: virtual void showEvent(QShowEvent *event)o..

2020-08-15 17:42:03 2780

原创 C++虚函数与纯虚函数使用详解

虚函数纯虚函数虚函数其实本身就是,面向对象语言的一种行为抽象,从设计模式角度出发的话,减少代码重复量,是为了提高程序扩展性的一种手段。在类中的具体实现如下:virtual void fun() = 0;//orvirtual void fun() const = 0;= 0 就是向编译器表示,该函数为纯虚函数,有纯虚函数的类,则被称为抽象类,该类不能被实例化,而之后的const 关键字则表示该函数内部不能修改数据成员,第一次见这种写法,被唬住了。...

2020-08-14 22:41:54 2009

原创 Qt删除OpenGLFramebufferObject的函数实现(清理帧缓存)

在opengl中,实现FBO的创建和删除需要用到这两个函数glGenFramebuffersEXT(1, &fbo);glDeleteFramebuffersEXT(1, &fbo);然而在Qt中却找不到glDeleteFramebuffersEXT这个函数,而可以找到这个函数 glDeleteFramebuffers(1,&fbo);//inline void QOpenGLFunctions::glDeleteFramebuffers(GLsizei n,

2020-08-12 10:00:08 1312

原创 Qt利用EasyPr实现车牌识别简单上位机界面(含雷达扫描)

对于Qt实现的easyPr项目,网上能找的现成不是很多,所以特意做了个小界面。easypr这个开源项目可以在git上找到,但是目前好像不怎么维护了。在使用这个项目的时候自己一定要配置好Opencv的环境,然后按照自己的路径更改一下pro文件下的路径,基本就可以编译实现了。识别结果的槽函数还没有实现,有一定的参考价值,可以在慢慢改。...

2020-08-07 15:32:45 988

原创 Qt QTableWidget类方法setItem()bug问题解决

自己用QTableWidget来记录实时数据时,出现该问题,百度之后发现是因为在最初设置行数处(setRowCount()),设置的行宽不够,在对数据测试时,数据超出了设置行数,在调用相关setText()时,出现空指针导致程序崩掉。网上现存的解决方案中,是对该指针以及后续text进行空指判断,个人觉得这种实现方式治标不治本,所以本文会给出两种该bug的解决方式,以供参考。空值判断// 判断指向该item的指针是否为空 || 判断该item的text是否为空if(ui->tableW.

2020-07-29 09:39:43 7567

原创 利用静态槽函数关闭Qt程序

一般设置一个控件关闭应用程序是很常见的需求,但是搜了一大圈发现,大多数方式都是用槽函数调用方式实现的,但是这里存在一个问题。//常见方式 QPushButton *quitButton = new QPushButton( "Quit" ); connect( quitButton, SIGNAL(clicked()), qApp, SLOT(quit()) );槽函数的接收者必须存在一个对象,而在应用中,往往在我们定义类中,无法访问到这个对象,因此我们可以利用quit函数的静态性,使用.

2020-07-01 21:35:15 663 1

原创 OpenCV+Qt环境配置 win10-Qt5.13.0-opencv3.4.10

环境Qt版本5.13.0 安装完毕 可找国内镜像 下载地址http://download.qt.io/archive/qt/cmake 3.17.0 rc1 win64 安装完毕 下载地址https://cmake.org/download/opencv 3.4.10 国内镜像下载地址https://www.bzblog.online/opencv/win系统下载 zip包即可操作步骤1.打开CMAKE,选择opencv的源码文件,再选择一个文件夹存放需要编译的文件。...

2020-06-21 11:09:06 686

原创 LintCode整数反转问题学习记录

这道题有意思的地方在于判断溢出,因为计算在不断进行,你需要提前判断是否会溢出,而且在c++中,对int最大值以及最小值进行了宏定义。#defineINT_MAX2147483647#defineINT_MIN(-INT_MAX-1)我们需要在每次计算rec返回值判断以下,是否下次的计算会超出数值范围。我们先把之前不用考虑数值超出的范围拷出来。int reverse(int x) { int rec = 0; w...

2020-05-29 22:39:38 135

原创 c++函数体内new对象时拷贝构造函数详解

当对象一般作为函数返回值时,一般会使用拷贝构造函数,然而在具体实现过程中,发现并没有通过拷贝构造函数来完成复制对象的工作,我们看一下例子。#include <iostream>#include <string>using namespace std;class Student{public: Student(int age, string name) { this->age = age; this->n

2020-05-29 21:40:52 2251

原创 QtOpengl之为三角形绘制纹理

前几天翻译了国外的一篇绘制三角形的文章,经过几天消化吸收,写篇自己绘制纹理的,顺便给出两种对纹理混合颜色的实现方法,关键都在于着色器的语言上。在开始之前呢,还是要从opengl的概念说起,明白纹理绘制原理的可以跳过了。纹理纹理顾名思义,就是贴在图元上的图片而已。就如下图的关系一样,首先我们有一张纹理图片,其次我们利用前面的知识画了一个三角形,然后在三角形上贴上了这张纹理图。其实贴纹...

2020-04-14 13:47:23 678

原创 LintCodeA + B 问题解决及笔记(C++)

描述给出两个整数aa和bb, 求他们的和。你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。说明a和b都是32位整数么?是的我可以使用位运算符么?当然可以样例样例 1:输入: a = 1, b = 2输出: 3 样例解释: 返回a+b的结果.当然直接return a+b,没有什么好说的,这里借鉴了评...

2020-04-13 21:39:38 317

原创 QtQpengl中窗口坐标与世界坐标系的转换以及gluProject/gluUnProject的使用

opengl中的世界坐标系,我们都清楚是归一化到(-1,+1)之间的,而我们的窗口坐标又是以坐上角为原点的,有时为了实现页面与opengl中绘制对象的交互,两者坐标间的转化其实是很有必要的。此外,除了2D坐标外,3D坐标也可进行转换,此文只介绍了2D的使用,要是有机会之后更新3D的使用。核心代码部分 GLint viewport[4]; GLdouble modelview[16...

2020-04-08 17:21:21 2644 3

翻译 QtOpenGL之绘制三角形Qt5

在本节中,我们将研究Qt5提供的一些OpenGL数据类型抽象。 这些数据类型抽象并不是创建OpenGL应用程序的100%必需的,但是它大大减少了代码量,使我们可以专注于渲染和UI,而不必担心我们的OpenGL实现。我们可以创造一个OpenGL带有颜色的三角星在我们的屏幕上。QOpenGLBufferOpenGL中的QOpenGLBuffer对象有点像GPU上动态内存的唯一ID。对于...

2020-04-01 17:14:57 1760 1

翻译 QtOpenGL之创建窗口Qt5

这个教程是从一个国外的博主搬过来的,我做了一些简单翻译和简化工作,因为我发现目前存在的qtopengl的代码版本太低了,很难上手使用,因此我将在Qt5的基础上,说明下qtopengl的使用,并将文章作为自己的一些笔记,笔者能力有限,可能存在一些疏忽的地方,欢迎大家指证。在接下来的介绍中,已经默认读者掌握了Qt的 信号和槽的使用,并能简单的构建一些应用程序。注意这里不是opengl或qt的教程,...

2020-03-21 11:40:08 1223 1

原创 C++内联函数的说明及使用

在说明内联函数之前,我们需要先简单介绍一下函数的执行过程。我们写的代码最终会被编译成可执行程序,这些程序是机器可以识别的机器语言,然后当我们运行程序时,这些代码被加载到内存当中。一般在调用函数时,函数调用后立即存储该指令的内存地址,并把函数的参数拷贝到堆栈空间,然后程序跳转到该函数起点的内存单元,执行函数代码,将返回值放入寄存器中,然后跳回到刚才的保存的指令地址处。就好比我们开古文的时候,...

2020-03-03 18:27:41 181

原创 C++中cosnt与指针的使用

我们经常使用const来修饰数据类型,来保证数据的安全,甚至cosnt被用在函数参数处,保证数据的安全性,当指针跟const放在一起时,它又表示什么作用呢?我们不妨写个代码看一看,首先我们给出一个简单的指针赋值的操作。#include <iostream>using namespace std;int main(){ int test = 6666; ...

2020-03-03 09:28:15 493

原创 C++中数组作为函数参数的使用说明

我们一般使用函数时,函数参数大多数都是int,couble,char之类的类型,我们接下来可以看看当函数里需要用到数组时,c++是如何实现的。下面给出的例子是c++primer的例子,在此这里简化了下。#include <iostream>const int ArSize = 8; //数组个数int sum_arr(int arr[], int n); // ...

2020-03-02 21:47:21 2271

原创 C++中cin.clear()函数的说明及具体使用

当我们使用cin函数作为输入的时候,可能会出现输入错误的问题,例如下面给出的例子#include <iostream>using namespace std;int main(){ int number; cin>>number; //输入字符 cout<<"first input"<<endl; ci...

2020-03-01 16:29:37 23693 15

原创 zedBoard USB转串口驱动下载问题

今天在测试zboard开发板时,sdk端需要用串口发回成功的打印信息,连接好线后,但仍然未出现端口,而是在设备管理器处查看到一个虚拟串口的冬冬,查了一圈发现需要安装驱动,而且目前我看到的帖子都是win7版本的,而且都还需要用csdn积分下载,在看到国外资料时,找到了这个驱动的下载地方,下面给出地址。https://secure.cypress.com/cart进去该网站后点击软件驱动栏...

2020-02-26 19:45:36 929 2

原创 C++利用clock()函数编写时间延迟

一般我们常见的延迟方式是通过编写循环体,来实现简单的不太精准延时方式,例如下面给出的例子,int wait;while(wait < 1000) wait++;但是由于处理器速度容易突变,所以这样的计时不是很准确,此外在编写延时代码时,不同的芯片还要考虑处理器的执行速度,因此不是很方便。而在C++库中存在一个clock()函数,该函数可以返回程序开始执行后所用的系统时...

2020-02-23 11:28:48 1302

原创 Qt实现提示音以及QSound的使用说明

类似于QQ来消息后,消息的滴滴声音,在Qt目前有两种实现方式:QApplication实现下面给出了官方文档说明,这里用的默认的声音,并需要注意到在linux不可用。[static] void QApplication::beep()Sounds the bell, using the default volume and sound. The function is not av...

2019-12-04 15:46:13 5909 3

原创 Qcustomplot实现鼠标点击获取曲线值的功能

该功能有点类似于Matlab数据游标的功能,博主本人并没有找到关于Qt自己封装的方法,因此在网上搜索资料,按照目前的方法,实现该功能。在头文件里我们需要关注QCustomplot、QCPItemText、QCPItemTracer这三个类,后两个类是在QCustomplot类上开发的新组件,第一个类是我们需要用的绘图类,需要包含.h与.cpp文件,同时修改pro文件,就可以使用了,第二个类...

2019-12-04 09:58:03 8071 12

原创 Git push时出现的Large files detected问题解决

由于在上传文件,一不小心上传了程序的debug记录,超出了码云的限制,因此报错,最初删掉本地的文件,重新git add,再push依然无法解决,在搜索解答中,发现了很多大佬解决方案的帖子,但是所引用的命令似乎有些错误,因此把我重新修改过的命令贴出来。git filter-branch -f --index-filter "git rm -rf --cached --ignore unm...

2019-10-18 15:32:59 772

原创 Qt固定含布局窗口大小问题

最常见的解决方式是:setFixedSize(width , height);setFixedSize(this.width() , this.height());但该方法在设置含有布局的窗口时,固定的窗口的大小存在问题。所以用下面的函数,根据窗口内的部件大小,设置窗口大小,由于设置了setfixedsize,因此完成了窗口大小的固定。setSizeConstraint(QL...

2019-08-29 15:00:28 2386

原创 Qt实现自动清理一周前log文件

为了避免源源不断的log文件,占据客户存储空间,因此需要实现自动清理log文件的功能。具体实现:#include <QString>#include <QFile>#include <QApplication>#include <QDateTime>#include <QFile>#include <QTextS...

2019-07-14 17:30:09 2417 3

EasyPrWidget.zip

打不开的话,改后缀名为 rar!!!!一个简单界面,还没有做完善,大家可以在这基础上改进,记得要配置好opencv环境哦,不会的小伙伴可以参考我之前的文章。

2020-08-07

空空如也

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

TA关注的人

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