自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Qt-QPainter的使用总结

QPainter是Qt框架中的一个类,主要用于在各种设备上进行2D图形绘制,如窗口、位图、打印设备等。它提供了一系列绘图函数,可以实现绘制点、线、曲线、形状、文本、图像以及复杂的绘画操作。QPainter 与 QPaintDevice 和 QPaintEngine 类一起构成了Qt绘制系统的基础:使用QPainter进行绘图的基本步骤如下:当你需要在自己定义的界面上面执行各种绘画操作时,使用这个类就行绘制,毕竟QT直接提供的Ui控件里面还是比较少的,如果你想实现自己的控件,可是重写里面的虚函数,进行绘制自己

2024-07-15 11:08:47 770

原创 Qt图形编辑类使用总结-QGraphicsView、QGraphicsScene类及QGraphicsItem类

QGraphicsView 类本身负责渲染和显示图形场景 (QGraphicsScene),而场景则负责存储和管理所有的图形项 (QGraphicsItem),这些图形项可以是文本、形状、图片等任何可视化元素。

2024-07-10 17:11:53 260

原创 Qt基础控件总结—多页面切换(QStackWidget类、QTabBar类和QTabWidget类)

QStackedWidget 类是在 QStackedLayout 之上构造的一个便利的部件,其使用方法与步骤和 QStackedLayout 是一样的。QStackedWidget 类的成员函数与 QStackedLayout 类也基本上是一致的,使用该类就和使用 QStackedLayout 一样。

2024-07-10 11:16:46 549

原创 Qt常用基础控件总结—菜单控件(QMenu类)

QMenu 是Qt库中用于创建弹出式菜单的类,它通常出现在应用程序的顶部菜单栏、按钮的右键菜单或自定义上下文菜单中。QMenu 类提供了一系列方法来添加菜单项、子菜单以及关联槽函数,以便在用户选择菜单项时执行相应的动作。使用 exec(QPoint globalPos) 弹出菜单并等待用户选择一个项,然后返回被选中项的 QAction 对象指针。通过关联槽函数到 triggered(QAction *) 信号,可以在用户选择菜单项时执行相应操作。//在菜单中添加一个分隔线,用于区分不同的菜单项组。

2024-07-09 16:49:15 375

原创 Qt常用基础控件总结—表格控件(QTableWidget类)

表格控件最上面一排是,最左边一列是。表头又可以细分为多个分段(section),水平表头的分段就是表格各个列的列首,垂直表头 分段就是表格各个行的行首。表格控件的实体区域是按行、列排布的单元格,单元格内容一般用 QTableWidgetItem 条目填充,单元格如果不填充任何东西,那么默认是 NULL。。。1);2);3);4);5)。

2024-07-09 16:24:39 822

原创 Qt常用基础控件总结—容器部件(QGroupBox类)

QGroupBox(组框),直接继承自 QWidget 类,因此使用该类创建的对象,可作为窗口使用,组框在外观上是可见的。QGroupBox 类(组框),提供了一个顶部带有标题的箱形框架,然后在该框架中可以显示其他部件,组框的主要作用是把各部件组织在一起,以方便管理。QGroupBox 不会自动布置组框内的子部件。组框中的子部件可以是任何部件,通常是单选按钮和复选按钮。

2024-07-09 15:40:58 687

原创 Qt常用基础控件总结—旋转框部件(QSpinBox类和QDoubleSpinBox类)

1)accelerated:bool 访问函数:bool isAccelerated() const;此属性用于描述当按下旋转框的“向上/向下”按钮一段时间不放时,是否会加快调整旋转框中数值增加/减少的速度。默认为 false。2)acceptableInput:bool 访问函数:bool hasAcceptableInput() const;此属性用于获取输入的值是否满足当前验证器的要求。访问函数:Qt::Alignment alignment() const;

2024-07-09 15:38:53 714

原创 Qt常用基础控件总结—输入部件(QComboBox类和QLineEdit)

QLineEdit 类是 QWidget 类的直接子类,该类实现了一个单行的输入部件,即行编辑器。验证器(QValidator 类)和输入掩码简介:主要作用是验证用户输入的字符是否符合验证器的要求,即限制对用户的输入,比如仅能输入数字而不能输入字母等。行编辑器默认支持复制、剪切、粘贴等常用操作,还支持一些常用的快捷键(比如 Ctrl+C等)和鼠标右键的上下文菜单。下表为默认支持的键盘快捷键。

2024-07-09 15:36:20 647

原创 Qt常用基础控件总结—带边框的部件(QFrame和QLabel)

QLabel 类是 QFrame 类的直接子类,因此 QLabel 可以使用从 QFrame 类继承而来的边框效果。Qt 的标签可用于显示纯文本、富文本、电影、图像等,但没有提供与用户交互的功能。富文本就是指的符合 HTML 语言规范的文本。QLabel 会试图猜测输入的文本是以纯文本还是以富文本的形式显示。默认情况下,QLabel 的对齐方式是左对齐和垂直居中对齐显示,其中要显示的文本中的制表符会自动展开。

2024-07-09 15:34:01 697

原创 Qt常用类型使用总结-QImage类、QString类、Qvariant类、QDateTime类、QSplashScreen类等

颜色索引模式:在一张图片的每个像素中可以直接存放其rgb值!当然:我们也可以存放一个索引值,通过这个索引值去其对应的颜色表中去查找对应的颜色的rgb值来进行绘制。,亦即:用8位来存放一个索引值。灰度索引图:对于8阶灰度图而言,由于其一共有256种灰度,所以我们可以设计一个颜色表:里边存放256个rgb值!每个rgb值的三个分量都是相等的。这样:这张表就可以用来表示所有的灰度!而灰度索引图中存放的是各个整数索引值,这些图片数据本身是无法显示的,因为其没有实际的rgb值。

2024-07-09 15:23:46 997

原创 Socket通信—套接字通信

Soket通信就是网络通信。局域网:固定区域内的计算机、外部设备形成的通信私有网络。广域网:连接不同区域的通信公共网络。IP(Internet Protocol):即网络协议。本质是一个整型,用于表示计算机在网络中的地址,IP协议版本有两个:IPv4和IPv6。IPv4:使用一个点分十进制字符串来描述这个IP地址:192.168.247.255,分成了4份,每份1字节,8bit,最大255。端口的作用是定位到主机上的某一个进程,通过这个端口进程就可以接收到对应的网络数据了。

2024-07-04 10:02:50 673

原创 PLC基础知识

3.客户端工控机的本地连接里的IP地址第四个时段必须服务器的IP地址错开,不能发生冲突,以及通信的带宽必须都设置在100M左右,目前更多的是百兆通信,没有千兆通信;4)由客户端向服务器申请连接。5.网络通讯协议(其作用是便于服务器之间传输数据):常见的有MICROSOFT的NETBEUI、NOVELL的IPX/SPX和交叉平台TCP/IP,其中最常见的是TCP/IP协议。TCP/IP协议是一个协议簇,里面包括很多协议的,其中UDP和TCP是所有协议中的传输层协议,主要负责提供端对端的接口。

2024-07-04 09:10:43 312

原创 相机、镜头基础知识及硬件选型介绍

1.相机Binning(图像读出模式)功能:将相邻的几个像素合并成一个像素,其优点如下:1)可提高信噪比至sqr(mn)倍;2)可提高帧速至mn倍;3)可提高像素响应度。2.相机芯片中定义1英寸=16mm,不等于25.4mm3.相机的作用及基本成像过程:通过光电反应将光信号转换为电信号(电流/电压),进而存储以获得图像。基本成像过程:1)光电转换(将入射光信号转化为电信号);2)电荷收集(以一定形式的收集并存储代表入射光能量的电荷信号);

2024-07-04 08:58:31 851

原创 光源基础知识及选型原则

1.光谱(专业理解):光能量在不同频率上的分布。2.可见光的波段在380mm—700mm之间。红光波长最长,为700mm左右,紫光波长最短,在380mm左右。3.色温(以白色为界):光源的颜色与黑体在某一温度下辐射光的颜色相同(或最相近)时,黑体的温度就称为该光源的色温。一般色温高的光源,光源亮度大,长期照射对人体伤害大,其颜色偏蓝,色温低的光源对颜色的光源还原性好,对人的损伤低,其颜色偏红。4.光的色散:复色光分解为单色光而形成光谱的现象就叫做光的色散。

2024-07-04 08:49:39 424

原创 halcon学习

功能:列出目录中的所有文件参数列表:第1个参数Directory为输入变量,需要列出的目录名字,即输入目录地址;第2个参数Options为输入变量,默认值为files,建议值有:‘files’, ‘directories’, ‘recursive’, ‘follow_links’, ‘max_depth 5’(遍历深度), ‘max_files 1000’(最大读取文件个数);第3个参数Files为输出变量,读取的文件。

2024-07-04 08:44:04 456

原创 Windows开机自启动+延时设置

C:\Windows\System32\cmd.exe /c timeout 10&start “” start “启动” “C:\Users\PC\Desktop\xxxx.exe”,想要延时多久修改timeout后面的参数就行了,单位是秒,最后的C:\Users\PC\Desktop\xxxx.exe是你想要启动的程序的path。1)C盘,直接搜索启动,进入到需要开机自启动的界面,将需要开机自启动的程序快捷方式拖入到启动目录内;

2024-07-04 08:41:26 501

原创 Visual Studio常见问题

答:在编程时,写入文件的路径如image = cvLoadImage("C:\Users\lyb\Documents),这种写法在编译时不会报错,但在运行时会报错,报错图像读入为空,这是因为Windows的路径虽然用的是单斜杠,但在编程时的意义是不同的,单斜杠“\”在C/C++/C#中意义是转义前导字符,列如“\n”就代表换行。如果路径中刚好有转义字符开头的,就会引起问题,所以路径中的“\”用”\”来代替。

2024-07-04 08:38:34 716

原创 计算机基础

可以看到GPU设计者将更多的晶体管用作执行单元,而不是像CPU那样用作复杂的控制单元和缓存,从实际看,CPU芯片空间的5%是ALU,而GPU空间的40%是ALU。这也是导致GPU计算能力超强的原因。CPU:是电脑的中央处理器。它是一块超大规模是集成电路,其中包含ALU算术逻辑运算单元(算术运算单元,它可以在很少的时钟周期内完成算术运算)、Cache高速缓冲存储器以及Bus总线。GPU的工作与CPU类似,但又不完全像是,它是专为执行复杂的数学和几何计算而生的,一般来说,游戏对这方面要求很高。

2024-07-03 17:24:04 300

原创 opencv学习总结

Mat类中depth与type属性的理解:depth是用来度量每一个像素中每一个通道的精度,但它本身与图像的通道数无关。depth数值越大,精度越高。type是矩阵的类型,包含矩阵中元素的类型以及通道数信息,type的命名格式为CV_(位数)+(数据类型)+(通道数)。Mat类中data属性理解:uchar类型的指针,指向Mat数据矩阵的首地址。Mat类中可以访问像素值的函数:1)ptr函数:该函数作用是可以访问任意一行像素的首地址,格式是image.ptr(指定的行数)

2024-07-03 17:19:04 944

原创 图像基础知识

计算机事件基础知识

2024-07-03 16:57:44 332

原创 Qt绘图(2D)讲解-QPainter类、QPen类、QBrush类及QGradient类

指定绘图设备并开始绘制,此步骤也可在 QPainter的构造函数中完成。注意:每次调用begin()函数都会把QPainter 的设置重置为默认值。2D 绘图主要是 QPainter、QPaintDevice、QPaintEngine 三个类,主要类的作用(其关系见图示)调用QPainter::begin(QPaintDevice。以上代码与以下代码等效。

2024-06-06 17:06:46 310

原创 Qt常用基础控件总结—布局管理

情况1:只删除布局(已知网格布局对象gridLayout只有widget),但布局里的widget对象并不需要释放!!情况2:删除布局中的子布局和Widget// 清除layout= 0)//删除widget//删除子布局。

2024-06-06 15:35:42 873

原创 C++无锁(lock free)队列moodycamel::ConcurrentQueue

moodycamel::ConcurrentQueue一个用C++11实现的多生产者、多消费者无锁队列。它具有以下特点:1.快的让人大吃一惊,详见不同无锁队列之间的压测对比2.单头文件实现,很容易集成到你的项目中3.完全线程安全的无锁队列,支持任意线程数的并发4.用C++11实现,尽可能move元素,而不是copy元素5.模板化,无需专门处理指针,内部自动管理内存6.对元素类型或最大计数没有人为限制7.内存可以预先一次分配,也可以根据需要动态分配。

2024-05-29 09:43:42 1019

原创 Qt输入输出类使用总结-QDataStream类、QTextStream类、QFile类及QDir类

QDataStream 类负责以二进制方式读/写程序中的对象,输入源和输出目样标可以是QIODevice、QByteArray 对象。Little-Endian(LE,小端):即低位字节存储在低地址端,高位字节存储在高地址端;Big-Endian(BE,大端):即高位字节存储在低地址端,低位字节储倣在高地址端。这是 QDataStream 的默认字节序。

2024-05-16 16:38:00 864

原创 工业相机使用总结

像素格式解析工业相机遇到的问题总结

2024-05-15 15:03:00 152

原创 Qt常用基础控件总结—按钮部件

QAbstractButton 是个抽象类,该类是标准按钮 QPushButton、复选按钮 QCheckBox、单选按钮 QRadioButton、工具按钮 QToolButton 的父类,该类描述了按钮的一些共同功能,比如单击按钮发出的信号,按钮的状态等。注意:C++语法规定,不能创建抽象类的对象。

2024-05-09 11:31:46 945

原创 Qt窗口及QWidget类详解

QtWidgets 模块及窗口基本概念

2024-05-07 09:32:46 458

原创 Qt信号和槽知识点总结

两种方法,第一种是采用QVariant进行封装的方法,第二种是注册自定义数据类型的方法。1)定义自定义数据类型这里定义我们要传递的自定义数据类型,即1个结构体类型。int a;int b;bool c;}TEST;2)构造函数中注册新类型注意:如果是引用传递,要单独注册,即qRegisterMetaType(“TEST&”)。3)定义相应的signal和slotsignals:slots:注意这里的形参直接采用自定义数据类型,因为我们已经向系统注册了这种新类型。4)发送。

2024-04-30 15:16:25 740 1

原创 Qt-继承自QLabel的图像缩放移动类

【代码】Qt-继承自QLabel的图像缩放移动类。

2024-04-30 10:48:52 151

原创 C++ 设计模式

单例模式是一种创建型的软件设计模式,在工程项目中非常常见。通过单例模式的设计,使得创建的类在。,这样可以规避因频繁创建对象而导致的内存飙升情况。单例模式一般分为懒汉式和饿汉式。

2024-04-17 10:37:28 250

原创 Qt代码编译的完整过程

链接是将所有的对象文件和库文件结合起来,生成最终的可执行文件的过程。在这个阶段,链接器(Linker)扮演了关键角色。它负责处理对象文件之间的依赖关系,解决符号引用(比如函数和变量的名称),并合并它们成为一个单一的、可运行的程序。

2024-04-16 16:09:46 653

原创 计算机网络

通过媒介传输比特,确定机械及电气规范(比特 Bit) 协议:RJ45、CLOCK、IEEE802.3(中继器,集线器)作用:将比特组装成帧和点到点的传递(帧 Frame)协议:PPP、FR、HDLC、VLAN、MAC(网桥,:负责数据包从源到宿的传递和网际互连(包 Packet)协议:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP(、SPX:建立、管理和终止会话(会话协议数据单元 SPDU)协议: NFS、

2024-04-16 13:51:56 953

原创 Modbus RTU与Modbus TCP协议详解

与之相比,Modbus TCP使用以太网作为物理介质,支持更高的传输速率,可以达到以太网的标准速率,例如10Mbps、100Mbps或1Gbps。而Modbus TCP则采用基于TCP/IP的报文结构,将Modbus数据帧封装在TCP报文中,然后通过IP网络进行传输。它使用二进制编码来实现通信。与之相反,Modbus TCP采用基于以太网的通信方式,使用TCP/IP协议栈在网络上进行数据传输。Modbus TCP则依赖于TCP/IP网络,需要可靠的网络基础设施支持,适用于更大规模的分布式系统。

2024-04-15 10:40:30 613

原创 相机问题总结

解决方法: 关闭相机的心跳检测,或者,加大相机的心跳超时时间设置。具体参照下图的相机属性项。(TransportLayerControl 类别下)。需要注意,当关闭相机心跳后,如果调试程序异常结束,则需要断电重启相机,否则无法再次连接相机。原因: GigE 相机和 SDK 之间有心跳保活机制。当使用断点调试时,会阻塞心跳线程,导致心跳保活超时,相机断线。故之后对相机的操作都会失败。

2024-04-12 14:49:26 162

原创 Qt调试详细日志文件输出

如果想恢复消息处理程序,调用qInstallMessageHandler(0)。目的:生成log.txt日志文件,记录详细日志信息(包括等级、所在文件、所在行号、描述信息、产生时间等),以便于快速跟踪、定位。qInstallMessageHandle安装消息,注册回调函数,对qDebug()、qWarning()、qCritial()、qInfo()、qFatal() 等函数输出信息重定向处理。QtMessageHandler 回调函数处理日志信息,包括等级、所在文件、所在行号、描述信息、产生时间。

2024-04-11 14:51:25 645

原创 Qt代码异常崩溃抓取

3)代码如果异常崩溃后会在Debug或Release目录下生成dump文件,双击dump文件打开(一般会自动用VS打开),在VS右侧点击—2)在main中添加代码,用来生成dmp文件,主要是个回调函数。,点击后调试指针会指向崩溃的代码所在行。

2024-04-11 13:52:13 486

原创 Qt文件夹和文件访问常见问题和使用方法

QDir类提供对目录及其内容的访问。常用函数如下://用于确定目录是否存在,存在返回true,不存在返回false//,但要创建多级目录的话,还是要调用mkpath函数//。如果目录成功创建或已经存在,则返回true;否则返回false。。//用于设置目录对象的来限制列出或搜索的文件或目录的类型。//用于搜索名称过滤器的文件列表,并将其返回。//函数功能:遍历文件夹路径下的子目录或者文件。返回的是所有的文件夹名称和文件名称,以格式返回。

2024-03-27 15:26:49 665

原创 Qt 多线程应用

上面的QApplication::processEvents(QEventLoop::AllEvents,int ms)是Qt中的一个事件处理函数,可以使主线程在处理事件的同时继续执行其他代码,它用于处理所有的事件,包括UI事件、定时器事件、网络事件、文件事件等等。它的参数ms表示处理事件的最长时间,单位是毫秒,如果处理事件的时间超过了ms,则函数会返回。,即如果在主线程种调用就处理主线程的事件,子线程种调用就处理子线程的事件,每一个线程都有自己独立的事件循环。

2024-03-23 14:41:11 264

原创 Qt-事件总结

我们使用的基于窗口的应用程序都是基于事件,其目的主要是用来实现回调(因为只有这样程序的效率才是最高的)。所以在Qt框架内部为我们提供了一些事件处理机制,当窗口事件产生之后,事件会经过:事件派发(Qt应用程序对象发送的)—>事件过滤—>事件分发—>事件处理几个阶段。每一个Qt应用程序都对应一个唯一的QApplication应用程序对象,然后调用这个对象的exec()函数,这样Qt框架内部的事件检测就开始了(程序将进入事件循环来监听应用程序的事件)。

2024-03-22 09:38:06 902

原创 C++ 进程与线程

程序:就是磁盘上的可执行文件,并且只占用磁盘上的空间,是一个静态的概念。进程:被执行后的程序就叫做进程,不占用磁盘空间,需要消耗系统的内存,CPU资源,每个运行的进程都对应一个属于自己的虚拟地址空间。???后面有空去了解下???CPU时间片:CPU在某个时间点只能处理一个任务,但是操作系统都支持多任务的,那么在计算机CPU只有一个的情况下是怎么完成任务处理的?原理和古时候救济灾民的思路是一样的,每个人分一点,但是又不叫吃饱。

2024-03-22 09:24:10 1026

halcon例程详细介绍-V1.3

halcon例程标注_V1.3,标记了每个halcon的每个例程的详细介绍

2024-07-04

空空如也

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

TA关注的人

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