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...
Qt实现简易版的网络调试助手支持多端口监听(服务端) 调试DSP的小伙伴,需要对多个端口的客户端进行发送响应,但是用到的网络助手只支持单一发送,因此找我写了个简单Demo,供大家参考,后续可以考虑将combox作为勾选项,控制特定端口进行发送。界面大概长这个样子,使用ui拖拽绘制的,没有什么好讲的,左边上半区打印接收信息,左边下半区为打印信息。主要代码:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QTcpServer>#inc..
QUdpSocket服务端接收数据说明(非阻塞) 先说结论吧,QUdpSocket不支持阻塞式访问,正常非阻塞的要么需要信号槽机制访问,要么需要循环判断,导致的结果就是要不丢包严重,要不CPU占用率高,还是建以利用socket自己去实现UDP。参考:QT中UDPSocket丢包问题_rabbitjerry的专栏-CSDN博客_qt udp丢包1.信号槽机制访问#include <QCoreApplication>#include <QUdpSocket>#include <QHostAddress&g
Qt非GUI线程中执行Update函数UI界面假死的问题解决 业务逻辑很简单,就是收到udp数据后,更新绘图参数,然后执行绘图。最开始试过用定时器触发,发现定时器触发容易受到Ui操作事件的影响,导致图像绘制刷新速率肉眼可见的不同。再提高定时器的jing'q...
C++如何实现二进制数据存储为灰度图 本人是以Qt开发的,奈何数据太大8192*12384字节的数据,直接12Mb,导致QImage生成实例化对象时,老是弹出out memory的输出信息,显示通过分开画图再组合的方式实现了,本想存chun
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
Qt如何修改MainWindow中的边界大小 在一次编辑项目中,发现将自己实现的Widget设置为中心页面后,边界总是存在,通过设置自己实现的Widget.setContentsMargins(0,0,0,0)han's
sqlite3 创建各个形式带默认时间戳的表 想创建一个每次insert数据后,默认带系统时间戳的表,逛了一圈,查到了一些相关方法。发帖记录一下。正如下图所示,除此之外还可以构建其他格式的字符串,其中有些需要注意的问题列一下。基本样例CREATE TABLE time(ID INTEGER PRIMARY KEY,CreatedTime TimeStamp NOT NULL DEFAULT CURRENT_TIMESTAMP);建表查询得sqlite> select * from time;1|2021-04-28
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-&.
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++会拒绝类型转.
C++非常量引用的初始值必须为左值问题解决以及引用传参 这个问题还得从左值说起,左值最直观形象的解释就是,它一般处于表达式的左侧,它本身是具有内存空间的。在《c++ primer》一书中,文中举出了一个用来交换参数的小例子,并且跟C语言中值传递以及指针传递做了对比,我们清楚的知道,值传递是无法对值做交换的。并且函数参数若为值传递时,进入函数体时,会创建临时变量,并完成一次值拷贝操作,若临时变量空间很大则会很耗时。此外,由于引用传参会对原值进行修改,因此为了避免修改原值的问题出现,可以选用值传递,但既要引用传递,又要保证函数内部值不会对其做修改,那么我们就需要
c++条件变量的使用详解以及wait()爬坑经历记录 项目场景:上位机上需要实现一个存文件的操作,本来可以很简单的做实现,想着之前看过一个条件变量的例子,所以胆子肥了写来试试。大概实现思路如下,有一个数据线程接收数据,通过按钮操作,来置标志位,从而开始写数入队列,入队操作完成后,通过notify函数调用取数线程,取数线程从队列里拿数。然后通过按钮操作置标志位,退出写数线程,好像线程析构这种操作很不稳定,网上大家还是建议利用标志位,也正是因为标志位的问题,导致了函数一直阻塞在wait函数处,线程无法退出,无法实现关闭文件操作,因此无法完成正常写数。问
C/C++结构体内对指针开辟空间(变长结构体、构造函数实现) 前言最近实验室的小伙伴们突然问我,在结构体内创建指针,如何开辟其内存大小,有种极其简单且易想到的方法,就是在外部对其malloc空间,但是本文可以给出两种比较优雅的实现方式。1.利用构造结构体构造函数实现跟类的实现方式十分接近,在构造函数里实现指定的指针开辟长度,代码很简单,且因为结构体成员共有的问题,在外部也可以对内存做释放。#include <iostream>#include <map>#include <string>using na.
Qt构造函数中无法获取正确控件大小的问题解决 先看一个简单例子,在widget 中加入一个button,在构造时打印以及show()函数调用后打印button大小,发现不同。原因就是因为加了布局的原因,导致在构造结束之后,控件大小会发生改变一次。重写resizeEvent 或 showEventshowEvent在resizeEvnet之后调用,在show函数之前调用,重写这两者都可以获取正确大小。//头文件protected: virtual void showEvent(QShowEvent *event)o..
C++虚函数与纯虚函数使用详解 虚函数纯虚函数虚函数其实本身就是,面向对象语言的一种行为抽象,从设计模式角度出发的话,减少代码重复量,是为了提高程序扩展性的一种手段。在类中的具体实现如下:virtual void fun() = 0;//orvirtual void fun() const = 0;= 0 就是向编译器表示,该函数为纯虚函数,有纯虚函数的类,则被称为抽象类,该类不能被实例化,而之后的const 关键字则表示该函数内部不能修改数据成员,第一次见这种写法,被唬住了。...
Qt删除OpenGLFramebufferObject的函数实现(清理帧缓存) 在opengl中,实现FBO的创建和删除需要用到这两个函数glGenFramebuffersEXT(1, &fbo);glDeleteFramebuffersEXT(1, &fbo);然而在Qt中却找不到glDeleteFramebuffersEXT这个函数,而可以找到这个函数 glDeleteFramebuffers(1,&fbo);//inline void QOpenGLFunctions::glDeleteFramebuffers(GLsizei n,
Qt利用EasyPr实现车牌识别简单上位机界面(含雷达扫描) 对于Qt实现的easyPr项目,网上能找的现成不是很多,所以特意做了个小界面。easypr这个开源项目可以在git上找到,但是目前好像不怎么维护了。在使用这个项目的时候自己一定要配置好Opencv的环境,然后按照自己的路径更改一下pro文件下的路径,基本就可以编译实现了。识别结果的槽函数还没有实现,有一定的参考价值,可以在慢慢改。...