![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++Qt开发专栏
文章平均质量分 55
Qt实战
@会飞的毛毛虫
计算机专业博士在读,曾在课题组负责过硬件、软件、算法及落地部署的开发工作,发表了几篇水文。主要方向是做跟踪、跨域的虚拟生成,致力于成为一名Full Stack developer。有相关问题可以私信我为大家解答,看到不妨点个关注,我们一起进步哦!
展开
-
Qt国际化翻译Linguist使用
QT的国际化是非常方便的,简单的说就是QT有自带的翻译工具把我们源代码中的字符串翻译成任何语言文件,再把这个语言文件加载到项目中就可以显示不同的语言。下面直接上手:原创 2023-12-03 10:52:41 · 731 阅读 · 0 评论 -
TensorRT在Windows下前向推理速度不稳定解决方案
不仅TensorRT框架有这种现象,Libtorch、onnx框架也存在类似的情况。其根本原因是数据从显存到内存的时间不稳定所导致的,即:cudaMemcpyAsync in cudaMemcpyDeviceToHost mode is slow。和问题一一样:是数据从显存到内存的时间不稳定所导致的。有个设置会干扰这运行速度---分页内存。设置无分页内存可以让速度达到最快,而设置虚拟内存会导致速度变慢。在使用C++版本的TensorRT框架做模型推理时,会遇到前向推理速度不稳定的情况。原创 2022-12-15 12:45:29 · 1913 阅读 · 5 评论 -
基于Qt的OpenGL(五):添加一个或多个纹理及纹理环绕方式
按照前几节的知识,如果要给图像绘制真实的颜色,需要给每个像素一个颜色,这样做是不现实的。通常会采用纹理绘图。每一个顶点关联一个纹理坐标(Texture Coordinate),之后在图形的其他片段上进行片段插值(Fragment Interpolation)。我们的工作:告诉OpenGL该怎样对纹理采样。下图是增加纹理坐标属性后的数据格式:接下来说明如何添加一个纹理:首先在资源文件里添加一张图片:images表示类别,image表示文件夹,不矛盾:接着,输入纹理,对应的点选几个,其他原创 2021-10-04 16:09:59 · 1760 阅读 · 0 评论 -
基于Qt的OpenGL(四):GLSL更多属性-把颜色数据加进顶点数据中
理解了前面三节后,下面这幅图很直观的就能看出来:直接上代码:相较于之前的代码就增加了两行#ifndef MYOPENGLWIDGET_H#define MYOPENGLWIDGET_H#include <QOpenGLWidget>#include <QOpenGLFunctions_3_3_Core>#include <QOpenGLShaderProgram>class myopenglwidget : public QOpenGLWidget,QO原创 2021-10-04 12:26:21 · 4636 阅读 · 0 评论 -
基于Qt的OpenGL(三):QOpenGLShaderProgram和GLSL
QOpenGLShaderProgram是对ShaderProgram编译过程的封装,不管是加载SourceCode还是SourceFile,采用Qt的封装都是非常棒的。如果不封装,就会像下图一样,先把代码写入字符串,没有颜色标识,而且每行还得有换行符,非常麻烦。因此我们希望能像普通的C++代码一样编写Shader,好在Qt已经帮我们封装好了。为了在QT中正常加载并编辑shader文件:在工具->选项 中设置编码规则为UTF-8。步骤1:在pro文件目录新建txt文本,修改名字为shapes原创 2021-10-03 22:28:10 · 6442 阅读 · 1 评论 -
基于Qt的OpenGL(二):通过主界面绘制QOpenGLWidget
直接上QOpenGLWidget类的.h和.cpp代码:代码相对于第一节增加了析构函数,对内存合理释放。同时开放了和主界面互动的接口,想要通过按钮或者其他控件进行绘图,只需要在类中开放接口即可。程序给了详细的注释。#ifndef MYOPENGLWIDGET_H#define MYOPENGLWIDGET_H#include <QOpenGLWidget>#include <QOpenGLFunctions_3_3_Core>class myopenglwidget :原创 2021-10-03 19:02:47 · 1268 阅读 · 0 评论 -
基于Qt的OpenGL(一):OpenGL理论及QOpenGLWidget
框架:OpenGL3.3、Qt 5.12.3MinGW(3.2以前是传统模式(固定管线模式-已被丢弃),3.3是现在模式(可编程管线))优势:安装简单,Qt已经封装好了,如GLFW和GLAD。自己有支持OpenGL的窗口。介绍:OpenGL是Open Graphics Library的缩写,它是由Khronos组织制定并维护的一个规范。OpenGL的核心库是用C语言编写,但同时也支持多种语言的派生。核心模式:3.3以后版本新推出的模式,也叫现在模式或可编程模式。GPU渲染是一个流水线:比如输入一大原创 2021-10-03 13:39:30 · 8903 阅读 · 0 评论 -
Qt框架下读取USB无驱摄像头视频流并作人脸识别
复制粘贴即可实现功能MainWindow.h源代码#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QCamera>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/core/core.hpp>原创 2021-02-07 23:36:51 · 2259 阅读 · 3 评论 -
Qt框架下TCP/IP协议传任意类型/大小文件源码
流程图:#ifndef CLIENTWIDGET_H#define CLIENTWIDGET_H#include <QWidget>#include <QTcpSocket>#include <QFile>namespace Ui {class ClientWidget;}class ClientWidget : public QWidget{ Q_OBJECTpublic: explicit ClientWidget..原创 2021-02-02 23:36:31 · 5673 阅读 · 0 评论 -
Qt网络编程专栏
服务器端TCP通信有两个套接字,一个是监听的(QTcpServer),一个是建立好连接通信的(QTcpSocket),而客户端只有一个。bind绑定可以理解为固定一个端口常规TCP通讯和QtTCP通讯的区别原创 2021-02-02 11:45:33 · 247 阅读 · 0 评论 -
Qt串口通讯专栏
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>/*----------------user------------------------*/#include <QtSerialPort>#include <QDebug>/*----------------------------------------*/QT_BEGIN_NAMESPACEnamespace Ui {原创 2021-02-01 11:59:01 · 1329 阅读 · 1 评论 -
Qt事件专栏
事件用起来比信号槽要简单事件处理的流程:当有一个事件如鼠标双击事件被触发,则会在return app.exec();中监测到,它会把事件转换成一个对象,将对象传递给event()函数,这个函数不会立即处理,而是给了事件处理器(类似于swatch(事件对象a),从而调用响应的事件处理函数)。如果一个控件需要接收鼠标点击事件或者其他事件,那么就必须重写一个类,继承某种控件,并在ui界面中将控件提升为该类,然后在类的.cpp文件中重写事件处理函数所有的事件处理函数全部都是虚函数,需要重新实现..原创 2021-01-31 19:30:56 · 4854 阅读 · 0 评论 -
Qt 多线程专栏
csdn代刷访问量主线程就是进程,进程代表4个G的资源空间,主线程退出就意味着进程退出,在Qt中,主线程不能是子线程的父对象,因此必须在线程的析构函数中去delete线程对象。只要定时器启动,自动触发timeout()信号类A继承了Tread类,在A中写run方法,就会覆盖掉Thread中的run方法,所以此时调用start方法后,实现的是自己的run方法体里面的代码。start()相当于间接的调用run(),如果我们直接调用子线程的run()方法,其方法还是运行在主线程中,代码在程序中是原创 2021-01-29 16:03:45 · 1389 阅读 · 3 评论 -
Qt小知识点总结
构造函数用于对象定义一瞬间的初始化,因此可以在窗口的构造函数中设置窗口属性this指针在定义对象时和构造函数一同生成,因此可以在构造函数中使用this指针。this指针代指整个对象,要用->来访问成员变量或成员函数c++中,类的对象在函数被执行完之后就会调用析构函数QApplication a(argc, argv);// QApplication是类 a是对象,语句代表了QT框架初始化,这是整个Qt正常工作所必须的幕后主使。return a.exec();//a就是Qt..原创 2021-01-16 12:43:03 · 5472 阅读 · 2 评论