自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

简单就好

一个追求极致和极简的程序猿

  • 博客(498)
  • 资源 (6)
  • 论坛 (2)
  • 收藏
  • 关注

原创 在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 101 1

原创 QJSon自定义配置系统

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 json和xml都可以构建配置文件,只是这两个各有优缺点。(1) 在可读性方面,JSON 和 XML 的数据可读性...

2020-12-25 20:25:12 51

原创 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 180 3

原创 Libuv

Libevent、libev、libuv三个网络库,都是c语言实现的异步事件库libevent :名气最大,应用最广泛,历史悠久的跨平台事件库; libev :较libevent而言,设计更简练,性能更好,但对Windows支持不够好; libuv :开发node的过程中需要一个跨平台的事件库,他们首选了libev,但又要支持Windows,故重新封装了一套,linux下用libev实现,Windows下用IOCP实现;功能由epoll,kqueue,IOCP和事件端口支持的功能齐全的..

2020-11-30 14:27:35 75

原创 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 122

原创 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 91 1

原创 Qt设计模式

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同...

2020-11-04 15:46:46 86

原创 C++11后置返回类型

C++11新标准增加的auto不仅可以自动推断变量类型,还能结合decltype来表示函数的返回值。这些新特性可以让我们写出更简洁、更现代的代码。在泛型编程中,可能需要通过参数的运算来得到返回值的类型。我们看一下下面这个例子:#include<iostream>using namespace std;template <typename R,typename T, typename U>R add(T t,U u){ return t+u;}int

2020-10-05 23:10:03 82

原创 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 62

原创 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 571 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 309

原创 自己实现一个nullptr

由于在C++中NULL定义为0,C++中不能将void *类型的指针隐式转换成其他指针类型,而又为了解决空指针的问题,所以C++中引入0来表示空指针,而又因为NULL不能提醒程序员它是一个整数0而不是一个指向0的空指针,所以又引入了nullptr。#ifdef __cplusplus#define NULL 0#else#define NULL ((void *)0)#endif1 实现代码const class nullptr_t{public: templa.

2020-08-28 20:39:05 79

原创 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 468

原创 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 125

原创 QT+Halcon实现3D图像显示

QT+Halcon的资料很少,而3D资料就更少下面是我实现的QT+Halcon3D图像显示现在只是初步实现,后面会对其封装生成一个单独的类,取名叫QH3DWindow源码链接...

2020-07-04 18:55:43 598

原创 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 365

原创 SCONS安装教程

之前在网上搜索Scons的下载地址,进他们的官网用了两个多小时,点击下载,又等了两个小时,最后等不下去,又苦苦搜索其他下载方式。最后找到这个地址:https://sourceforge.net/projects/scons/files/scons/下载好了,又查找安装教程,发现没一个能用的,而且scons的资料很少,折腾了很久,以为是我python的问题,等等,最后还是慢慢摸索给解决了。一下是我的安装总结首先要注意安装scons之前要先安装Python scons3.0.3只支

2020-05-20 20:03:36 559

原创 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 489

原创 Qt二进制序列化和反序列化

定义:对象转换为二进制——>序列化二进制转换为对象——>反序列化序列化:Qt中实现对象序列化的类是QDataStream,写二进制到流中QFile fileout("file.dat"); //创建一个文档fileout.open(QIODevice::WriteOnly | QIODevice::Text);//打开并只写QDataSt...

2020-04-26 11:28:59 537 8

原创 QTreeView实时刷新界面

有的时候我们QTreeView的里面数据已经改变,但是界面却还是显示原来的数据,有的人会说用update函数,但是这个函数没啥用,经过半天的摸索,发现了这两种方法。第一种:使用QTreeView的doItemsLayout()但是这个函数最好是在主线程中调用,因为这个函数里面是哟你定时器,在非主线程中调用会报警告。第二种:使用模型/视图框架,继承QAbstractItemModel...

2020-04-23 20:55:25 910

原创 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 243

原创 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 711

原创 彻底解决QT乱码问题,从乱码是路人

相信大家在刚学 Qt 的时候一定遇到过百度后,大佬给出这三行代码QTextCodec::setCodecForTr(QTextCodec::codecForLocale());QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());QTextCodec::setCodecForCStrings(QTextCo...

2020-03-13 12:32:17 276

原创 好吧我摊牌了,这是C++最好的5 个网站

相对其他语言来说,C++ 算是难度比较高的了,这一点无法否认。但是如果能有一些好的网站,则会让 C++ 的学习事半功倍。那就来介绍几个最常用的(最好的)吧,包含了参考手册、教程、框架/库列表......1.cppreference网址:https://en.cppreference.com/w/cppreference 即 C++ 参考手册,这个网站始终是我的首选,因为它...

2020-03-11 09:05:41 356

原创 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 752

原创 QTableWidget 表头样式设置

QHeaderView::section{ border:2px groove gray; border-radius:10px; padding:2px 4px; background-color:#1296db; color:#ffffff;}效果:

2020-02-11 13:30:48 2022

原创 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 838

原创 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 237

原创 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 669

原创 QObject::connect()函数使用的几个注意点

一:connect()函数有且只能在QObject类里面和QObject派生类里面使用connect()函数有且只能在QObject类里面和QObject派生类里面使用,自己新建的类里面(基类不是QObject类和其QObject派生类)使用connect()函数是无效的,编译时一直报错。当然,我们新建工程比如widget,mainwindow,dialog都是QObject的派生类,所以...

2020-01-31 09:18:28 381

原创 QTreeView或QTreeWidget设置单元格的高度和宽度

设置列宽void setColumnWidth(int column, int width);设置行高QTreeView没有直接提供设置行高的方法,一般的方法是使用Delegate。从QItemDelegate继承,使用QTreeView::setItemDelegate设置。派生类里对sizeHint处理:QSize MyDelegate::sizeHint ( ...

2020-01-17 19:49:16 2003

原创 QTreeWidget设置勾选按钮

//test.h//在头文件里添加两个公用函数还有一个槽函数的声明#include <QTreeWidgetItem>public: void initTreeWidget(); void updateParentItem(QTreeWidgetItem *item);public: void treeItemChanged(QTreeWidgetItem *it...

2020-01-16 19:57:49 760

原创 QT绘制区域(ROI)框(矩形框和椭圆框)

先上效果图由于项目要涉及芯片检测的功能,需要选择特定区域,所以制作了个区域选择框,核心代码1:DrawQWidget.h#ifndef DRAWQWIDGET_H#define DRAWQWIDGET_H#include <QWidget>#include <QKeyEvent>#include <qpoint.h>#inclu...

2019-12-14 14:07:31 2193

原创 QT实现日志系统

功能:可以把简单输出信息显示到QTextEdit上面。可以把详细输出信息保存到文件中(为了避免多次打开文件进行读写,我用了双缓冲和线程)。主要文件1:SysMessage.h#ifndef SYSMESSAGE_H#define SYSMESSAGE_H#include <qthread.h>#include <qtextedit.h>...

2019-12-11 17:21:30 712

原创 解决树莓派4B关于wiringpi2.52的版本问题

最近在用树莓派做一些开发,在应用层控制GPIO,选用了wiringpi库,wiringpi官网:http://wiringpi.com/ wiringPi项目在github上的源码:https://github.com/WiringPi/WiringPi具体怎么安装配置wiringpi可以参考https://blog.csdn.net/zhkmxx930xperia/article/de...

2019-11-20 11:12:23 1343

原创 QT动态实现中英文切换

第一步:打开项目pro文件添加TRANSLATIONS += myI18N_zh_CN.ts文件名可以随便取,但是要以 .ts 结尾第二步:使用lupdate生成 .ts 文件第三步:使用Qt Linguist完成翻译第四步,使用lrelease生成.qm文件第五步:代码实现主要代码就是加载qm文件,然后显示更新void ...

2019-11-16 16:44:44 464

原创 在QT的槽函数中判断是哪个发送端发送的信号

有时候我们用多个信号发送端挂接同一个槽信号,而这个槽函数如果要判断是哪个发送端发送的,这是可能有点困难,因为这其实违反了面向对象的模块化原则。但是QT还是给我们留了一个函数,[protected] QObject *QObject::sender() const;简单用法void MainWindow::slot_function(){ auto reply1 = q...

2019-11-15 11:50:29 566 1

原创 Modbus学习:初学modbus

FreeModbus的github源码:https://github.com/cwalter-at/freemodbusFreeModbus移植 经验分享:https://www.amobbs.com/forum.php?mod=viewthread&tid=5491615&page=1#pid6025560FreeModbus源码详解:https://blog.cs...

2019-11-13 20:16:16 608

原创 树莓派学习:wiringPi库学习

最近公司拓展要在树莓派上研发一些新项目,以前一直只是听说树莓派,但是没接触过。而树莓派关于串口通信有以下三种方案,根据我的项目选择了wiringPi, 【python GPIO】 【开发语言】——python 【简单介绍】——该库更确切的名称为raspberry-gpio-python,树莓派官方资料中推荐且容易上手。python GPIO是一个小型的python库,...

2019-11-07 17:51:37 620

原创 僵尸进程可以被“杀死”吗?

僵尸不可能被杀死,因为它已经死了,不存在再死一次的问题。死的对立面是活,死者已死。只有活的进程才可能被杀死。什么是僵尸首先要明确一点,僵尸进程的含义是:子进程已经死了,但是父进程还没有wait它的一个中间状态,这个时候子进程是一个僵尸。正常情况下子死,父wait,清理掉子进程的task_struct,释放子进程的PID:编译上述程序,运行,我们看到2个a.out进程:杀...

2019-11-05 08:10:48 205

draw_qwidget.zip

由于项目要涉及芯片检测的功能,需要选择特定区域,所以制作了个区域选择框,在QWidget上绘制区域框,可以放大缩小移动,可以是矩形,也可以是椭圆,注释非常完整。 需要详细介绍的可以参考我的博客https://blog.csdn.net/qq_40732350/article/details/103538593

2019-12-14

halcon19可用dll.zip

HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。它节约了产品成本,缩短了软件开发周期——HALCON灵活的架构便于机器视觉,医学图像和图像分析应用的快速开发。在欧洲以及日本的工业界已经是公认具有最佳效能的Machine Vision软件。

2020-08-03

Qt6SerialPort.zip

在QT6中实现串口模块Qt6SerialPort,文章链接https://blog.csdn.net/qq_40732350/article/details/113634422

2021-02-04

qthalcon3d.zip

QT+Halcon的资料很少,而3D资料就更少下面是我实现的QT+Halcon3D图像显示 QT+Halcon的资料很少,而3D资料就更少下面是我实现的QT+Halcon3D图像显示

2020-07-04

Qt实现二维码的编解码

Qt实现二维码的编解码,能够通过字符串生成二维码,qrcode库和QZXing库,博客地址https://blog.csdn.net/qq_40732350/article/details/109550957

2020-11-07

Linux基本用到的函数

本书源自日均阅读量近万次火爆的线上同名课程,口碑与影响 力俱佳,旨在打造简单易学且实用性强的轻量级 Linux 入门教程。

2018-09-30

qt自定义的委托单击编辑

发表于 2021-02-05 最后回复 2021-02-05

QQ2651401966的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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