QT学习
文章平均质量分 68
QT技术为主
QtHalcon
大学一直做嵌入式和音视频方向的开发,熟悉Linux,毕业转到了CV方向,现在在深圳从事计算机视觉的工作。
展开
-
VS2019编译QT6源码
现在QT在线安装只有QT6.2以上的版本和QT5.15,其他版本就需要自己编译,本文讲解在vs2019环境下编译qt6.1.3源码。原创 2022-12-16 18:00:48 · 1447 阅读 · 0 评论 -
Ubuntu+Qt加载png失败
Ubuntu+Qt加载png失败原创 2022-11-02 16:17:03 · 584 阅读 · 0 评论 -
QtCreator 加载Ubuntu环境变量
QtCreator 加载Ubuntu环境变量原创 2022-10-31 15:07:40 · 1337 阅读 · 0 评论 -
PCL1.12+VTK9.1+QT6编译部署
PCL1.12+VTK9.1+QT6编译部署原创 2022-06-21 17:23:47 · 3968 阅读 · 14 评论 -
error: C1083: 无法打开包括文件: “stddef.h”: No such file or directory
QT报错error: C1083: 无法打开包括文件: “stddef.h”原创 2022-06-08 10:10:17 · 3781 阅读 · 6 评论 -
Qt智能指针
QPointerQPointer属于Qt对象模型的特性,本质是一个模板类,它为QObje提供了guarded pointer。当其指向的对象(必须是QObject及其派生类)被销毁时,它会被自动置NULL,原理是其对象析构时会执行QObject的析构函数,进而执行QObjectPrivate::clearGuards(this);,这也是基于其指向对象都继承自QObject的原因。QPointer对QMetaObject的相关操作做了简单的封装,这里的基本思想是...原创 2022-03-07 16:46:33 · 546 阅读 · 0 评论 -
QT自定义安装包
有时候我们需要把整个软件需要的东西打包在一个文件内,这样就可以一键安装需要的东西,方便用户操作,本文用的QT版本是qt6.2。1 解压压缩包1.1zlib先下载zlib,链接如下:http://www.zlib.net/下载后编译一下1.2quazip下载quazip,链接如下https://sourceforge.net/projects/quazip/files/quazip/0.7.3/下载后,...原创 2021-12-20 14:52:32 · 1368 阅读 · 4 评论 -
QGraphicsItem删除item崩溃
用QGraphicsScene删除item有时候会出现崩溃现象。P_Scene->removeItem(item);解决方式使用QGraphicsScene的setItemIndexMethod(QGraphicsScene::NoIndex);禁用索引的快速查询,即可解决上述问题。其他对于使用removeItem()后是否还需要delete的问题,官方问题有给出明确解释Removes the item item and all its children from the原创 2021-12-04 11:12:01 · 2289 阅读 · 1 评论 -
Qt教程(3) : 信号与槽
信号与槽是用于对象之间的通信的,这是 Qt 的核心。为此 Qt 引入了一些关键字,他们是slots、signals、emit,这些都不是 C++关键字,是 Qt 特有的,这些关键字会被 Qt 的 moc转换为标准的 C++语句。 Qt 的部件类中有一些已经定义好了的信号和槽,通常的作法是子类化部件类,然后添加自已的信号和槽。因为信号和槽与函数相似,所以通常把信号称为信号函数,槽称为槽函数。元对象是指用于描述另一个对象结构的对象。使用编程语言具体实现时,其实就是一个类的对...原创 2021-07-09 09:50:58 · 8331 阅读 · 1 评论 -
Qt教程(2) : Qt元对象系统
元对象是指用于描述另一个对象结构的对象。使用编程语言具体实现时,其实就是一个类的对象,只不过这个对象专门用于描述另一个对象而已,比如 class B{…};class A{…B mb;…};假设 mb 是用来描述类 A 创建的对象的,则 mb 就是元对象。一、元对象系统 Qt 的元对象系统提供的功能有:对象间通信的信号和槽机制、运行时类型信息和动态属性系统等。元对象系统是 Qt 对原有的 C++进行的一些扩展,主要是为实现信号和槽机制而引入的,信号和槽机制是 Qt...原创 2021-06-23 17:51:47 · 2119 阅读 · 9 评论 -
Quick图形旋转、缩放和平移
Item类型的scale和rotation属性在以前讲解Item类型时就提到,它是所有其他可视化类型的基类型,所以在该类型中包含了很多基本的属性,对于所有继承自Item的类型都是可用的,比如这里我们要讲的scale和rotation。其中scale属性保存了项目的比例因子,当其值小于1.0的时候,项目会被缩小;当其值大于1.0的时候,项目会被放大。当该属性值为负数时,会将项目镜像显示。其默认值为1.0。而rotation属性保存了项目顺时针旋转的度数。默认值为0。这两个属性在第6篇讲解Ite原创 2021-06-20 09:25:30 · 551 阅读 · 7 评论 -
Qt教程(1) : 用Log4Qt自定义日志系统
日志系统可以记录软件系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件和异常。在程序调试过程中,需要通过日志来找出问题所在。使用一个好的日志框架可以事半功倍,C++的日志框架有很多,常用的框架如下: log4cxx:Java 社区著名的 Log4j 的 C++ 移植版,用于为 C++ 程序提供日志功能,以便开发者对目标程序进行调试和审计。 log4cplus:一个简单易用的 C++ 日志记录 API,它提供了对日志管理和配置的线程安全、灵活和任意粒度控制(...原创 2021-05-23 18:32:27 · 3862 阅读 · 4 评论 -
图像处理(6) : 特征提取
图像的特征描述了图像的某种属性,当通过分割、形态学处理得到一些区域后,这些区域就构成了一个集合。常用的特征类型有边缘、角、区域和脊背。如何从这些集合中选择出需要的区域,这就需要使用特征作为判断和选择的依据。例如,使用区域的面积作为特征,可以快速提取出面积差异明显的对象;使用灰度值作为特征,可以提取出灰度差异大的图像等。一、形状特征在场景中选择物体的特征是图像测量或者识别的重要基础。区域的形状特征是非常常用的特征,在模式匹配中,常使用形状特征作为匹配的依据。下面就介...原创 2021-05-16 15:34:52 · 7082 阅读 · 2 评论 -
自定义Qt插件系统
一、插件概述1.1什么是插件 插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。因为插件需要调用原纯净系统提供的函数库或者数据。很多软件都有插件,插件有无数种。例如在IE中,安装相关的插件后,WEB浏览器能够直接调用插件程序,用于处理特定类型的文件。1.2插件系统系统的组成插件系统,可以分为三部分:...原创 2021-03-24 16:57:53 · 704 阅读 · 0 评论 -
在QT6中实现串口模块Qt6SerialPort
最新的Qt6没有串口模块QSerialPort,只能自己去编译Qt5的源码。1 找到QSerialPort的源码QSerialPort源码在这里,没有源码,需要自己安装源码模块,我这里用的是5.15.2的源码。2.构建工程将sqerialport整个文件夹复制到其他地方,用qtcreator打开,选择编译器qt6 msvc2019 64bit打开qtserialport.pro,有如下内容lessThan(QT_MAJOR_VERSION, 5) { mes原创 2021-02-04 12:11:09 · 6560 阅读 · 14 评论 -
QJSon自定义配置系统
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 json和xml都可以构建配置文件,只是这两个各有优缺点。(1) 在可读性方面,JSON 和 XML 的数据可读性...原创 2020-12-25 20:25:12 · 690 阅读 · 0 评论 -
QT6+Halcon
2020年12月8日 ,Qt公司正式发布了Qt 6.0,这一软件开发平台全新的主要版本。Qt 6.0 已被重新设计为面向未来、以生产力为重点的基础平台,QT迎来一个新时代。Qt+Halcon这种组合在机器视觉方面应用非常广泛,一、Qt6全新理念面向未来的生产力平台 以生产力为基石的Qt 6系列,旨在解决因物联网爆发性增长而激增的软件需求与合格软件开发者增长停滞之间的冲突。凭借其提高生产力的工具和API,Qt客户和用户不仅能提升开发能力、大幅降低...原创 2020-12-18 18:02:50 · 2223 阅读 · 7 评论 -
Qt+Halcon在XP上构建和运行
XP是很老的系统了,微软都不支持,也很是有客户会用到XP系统,我们的软件支持Win10和Win7,就是不支持XP。这次我们遇到的这个客户不能更换系统,只能让我们的软件支持XP。让软件支持XP有可能比写软件本身都还要麻烦,主要是现在好多第三方库都不支持XP,所以软件改动特别大。一、构建支持XP的QT环境 Qt5目前有两个长期支持版本(Long Term Support)Qt5.6和Qt5.9; Qt从5.7版本及以后不再支持WinXP系统,即编译生成的exe文...原创 2020-11-22 12:17:48 · 619 阅读 · 0 评论 -
Qt实现二维码的编解码
如下图能够通过字符串生成二维码编程环境二维码编码:Qt5.14 + qrcode库 二维码解码:Qt5.14 + QZXing库 qrcode库下载地址:https://fukuchi.org/works/qrencode/ QZXing库下载地址:https://github.com/ruisebastiao/QZXing1 二维码编码1.1环境配置下载qrcode库后,解压后只留下下图红框所框住的文件其中将config.h.in更名为 config.h在文件中将.原创 2020-11-07 20:05:23 · 1316 阅读 · 1 评论 -
Qt设计模式
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同...原创 2020-11-04 15:46:46 · 2599 阅读 · 2 评论 -
Qt Creator build遇到error lnk1158 无法运行rc.exe
复制到C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86rc.exe 和rcdll.dll到 F:\Qt\Qt511\5.11.1\msvc2015\bin和F:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\ 中.原创 2020-10-01 21:07:31 · 304 阅读 · 0 评论 -
QT实现毛玻璃窗口
最近想做一个毛玻璃的窗口效果,经过一番折腾终于搞出了先上效果程序代码:#ifndef SYSDIALOG_H#define SYSDIALOG_H#include <qdialog.h>#include <QGraphicsBlurEffect>#include <QGraphicsPixmapItem>#include <QPaintEvent>#include <QPainter>#include <QT原创 2020-09-08 23:30:46 · 5131 阅读 · 1 评论 -
QsciScintilla在QT上的使用
QsciScintilla下载地址地址:https://riverbankcomputing.com/software/qscintilla/download下载后打开里面的工程文件,然后分别在debug和release下运行生成相应的dll和lib生成好后加入你的代码中CONFIG(debug, debug|release){LIBS += "$$PWD/Lib/64bit/qscintilla2_qt5d.lib"} else {LIBS += "$$PWD/Lib/64bi原创 2020-08-30 11:17:35 · 3226 阅读 · 8 评论 -
QT改变QLineEdit的光标
效果代码头文件:#ifndef QTLINEEDIT_H#define QTLINEEDIT_H#include <QLineEdit>#include <QTimer>#include <QPainter>#include <QDebug>#include <QProxyStyle>#include <QCursor>#include <QStyleHints>#include..原创 2020-08-14 10:34:51 · 3518 阅读 · 4 评论 -
MFC重绘按钮背景
虽然不用MFC来开发,但是客户还是让我们用MFC,不多说,继承CButton重新实现类#pragma once#include "afxwin.h"class CMyButton : public CButton{ //DECLARE_DYNAMIC(CMyButton)public: CMyButton(); virtual ~CMyButton(); //设置Button Down的背景颜色 void SetDownColor(COLORREF color);原创 2020-07-19 22:22:44 · 462 阅读 · 0 评论 -
QT+Halcon实现3D图像显示
QT+Halcon的资料很少,而3D资料就更少下面是我实现的QT+Halcon3D图像显示现在只是初步实现,后面会对其封装生成一个单独的类,取名叫QH3DWindow源码链接...原创 2020-07-04 18:55:43 · 2156 阅读 · 0 评论 -
QT封装接口生成DLL
新建项目,选择C++库然后分为两种情况如果你的库里面不需要包含QT 如果你的库里面要包含QT第一种情况就不要勾选下面的任何选项,第二种情况要勾选对于头文件来说也有区别第一种情况要加上下面这句代码#define UNTITLEDSHARED_EXPORT __declspec(dllexport)第二种情况要加上下面这句代码#include <QtCore/qglobal.h>#if defined(UNTITLED_LIBRARY)# defi原创 2020-06-19 10:40:11 · 1817 阅读 · 0 评论 -
QTableWidget的checked可选按钮使用方法
第一步设置QTableWidget的Item为可选格式QTableWidgetItem *check=new QTableWidgetItem;check->setCheckState (Qt::Checked);ui->setting_tableWidget->setItem(i,j,check); //插入复选框第二步设置QTableWidget的Ite...原创 2020-05-04 12:02:47 · 3421 阅读 · 0 评论 -
Qt二进制序列化和反序列化
定义:对象转换为二进制——>序列化二进制转换为对象——>反序列化序列化:Qt中实现对象序列化的类是QDataStream,写二进制到流中QFile fileout("file.dat"); //创建一个文档fileout.open(QIODevice::WriteOnly | QIODevice::Text);//打开并只写QDataSt...原创 2020-04-26 11:28:59 · 1603 阅读 · 8 评论 -
QTreeView实时刷新界面
有的时候我们QTreeView的里面数据已经改变,但是界面却还是显示原来的数据,有的人会说用update函数,但是这个函数没啥用,经过半天的摸索,发现了这两种方法。第一种:使用QTreeView的doItemsLayout()但是这个函数最好是在主线程中调用,因为这个函数里面是哟你定时器,在非主线程中调用会报警告。第二种:使用模型/视图框架,继承QAbstractItemModel...原创 2020-04-23 20:55:25 · 7733 阅读 · 7 评论 -
QT调试错误:The CDB process terminated.
原因1:可能你的调试器没有配置参考:https://www.ixxin.cn/2017/04/18/qt5donotdebug/原因2:缺少动态库dll你可以直接点击exe文件,来查看缺少那些dll,把缺少的dll复制到exe文件目录下...原创 2020-03-17 10:01:50 · 930 阅读 · 0 评论 -
QT中字符串的比较、查找、替换等操作
基本操作 QString s1 = "Welcome"; QString s2; s2 = s1 + "to you"; QString s3 = "Hello "; s3 = s3 + "World"; qDebug() << s2 << endl << s3 << endl; QSt...原创 2020-03-15 14:58:44 · 5634 阅读 · 0 评论 -
彻底解决QT乱码问题,从乱码是路人
相信大家在刚学 Qt 的时候一定遇到过百度后,大佬给出这三行代码QTextCodec::setCodecForTr(QTextCodec::codecForLocale());QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());QTextCodec::setCodecForCStrings(QTextCo...原创 2020-03-13 12:32:17 · 1691 阅读 · 0 评论 -
QPushButton样式表
QPushButton{ color:#ffffff; /*文字颜色*/ background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop:0 #aa55ff, stop: 1 #1296db);/*背景色*/ border-style:outset; /*边框风格*/ border-width:...原创 2020-02-11 18:28:15 · 8854 阅读 · 0 评论 -
QTableWidget 表头样式设置
QHeaderView::section{ border:2px groove gray; border-radius:10px; padding:2px 4px; background-color:#1296db; color:#ffffff;}效果:原创 2020-02-11 13:30:48 · 4794 阅读 · 1 评论 -
QImage和QPixmap相互转换
QPainter p(this); QPixmap pixmap; pixmap.load("../image/路飞.jpg"); //QPixmap->QImage QImage tempImage = pixmap.toImage(); p.drawImage(0,0,tempImage); QImage image; ...原创 2020-02-04 17:56:07 · 1570 阅读 · 0 评论 -
QHBoxLayout析构引发的异常
自定义QHBoxLayout的布局,在析构时引发异常 Label = new QLabel(QString("AAAAA")); ComboBox = new QComboBox; SpacerItem = new QSpacerItem(200, 20, QSizePolicy::Fixed); HBox_Layout = new QHBo...原创 2020-02-04 10:17:44 · 711 阅读 · 1 评论 -
Qt信号和插槽错误:未定义的引用`vtable for function'
只有继承了QObject类或QObject的子类,才具有信号槽的能力。class A: public QObject{ Q_OBJECTpublic: A(); virtual ~A();signals: void Signal_Function();public slots: void Slot_Function();};继承了QO...原创 2020-02-01 16:53:32 · 3175 阅读 · 1 评论 -
QObject::connect()函数使用的几个注意点
一:connect()函数有且只能在QObject类里面和QObject派生类里面使用connect()函数有且只能在QObject类里面和QObject派生类里面使用,自己新建的类里面(基类不是QObject类和其QObject派生类)使用connect()函数是无效的,编译时一直报错。当然,我们新建工程比如widget,mainwindow,dialog都是QObject的派生类,所以...原创 2020-01-31 09:18:28 · 2747 阅读 · 0 评论 -
QTreeView或QTreeWidget设置单元格的高度和宽度
设置列宽void setColumnWidth(int column, int width);设置行高QTreeView没有直接提供设置行高的方法,一般的方法是使用Delegate。从QItemDelegate继承,使用QTreeView::setItemDelegate设置。派生类里对sizeHint处理:QSize MyDelegate::sizeHint ( ...原创 2020-01-17 19:49:16 · 8652 阅读 · 0 评论