QtWidget使用Fluent组件库 该组件库的下载地址:[fluent ui组件库](https://github.com/Liniyous/ElaWidgetTools)。下载后解压,使用Qt Creator打开,注意必须是Qt6或者Qt5.15以后的版本
Qt5+Opencv插件式开发 插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。因为插件需要调用原纯净系统提供的函数库或者数据。很多软件都有插件,插件有无数种。例如在IE中,安装相关的插件后,WEB浏览器能够直接调用插件程序,用于处理特定类型的文件。在开发机器视觉项目通常使用QtWidget作为GUI框架,使用Opencv或者Halcon作为视觉算法框架。
QWidget实现开关按钮 首先是使用Q_PROPERTY将开关按钮的属性注册到Qt的元对象系统重,方便后续将开关控件集成到QtDesigner设计师界面中:如下是开关控件的属性:在绘制时,首先将上面属性中的颜色初始化://设置选中和未被选的画笔颜色elseelse//绘制外部大圆//绘制内圆绘制效果如下://鼠标点击(左键点击)else//鼠标松开checked =!checked;//改变状态//状态改变后,更改动画效果else//状态改变函数。
Qt实现TCP网络通信 在标准C++中没有提供专门用于套接字通信的类,所以只能使用操作系统提供的基于C语言的API函数,基于这些C的API函数我们也可以封装自己的C++类。或者我们可以使用Qt框架,它提供了用于套接字通信的类(TCP、UDP)这样我们就可以直接调用相关API即可。QTcpServer:服务器类,用于监听客户端连接以及和客户端建立连接。QTcpSocket:通信套接字类,客户端与服务器都需要使用这个类。最后要使用这两个类,我们需要在Qt的.pro文件中添加network(网络模块)。
thread的使用 在上面的示例程序中有一个 bug,在主线程中依次创建出两个子线程,打印两个子线程的线程 ID,最后主线程执行完毕就退出了(主线程就是执行 main () 函数的那个线程)。如上我们在主线程中执行interact()这个交互函数,子线程执行文件下载的函数,当主线程执行完成后,不会立马退出程序和回收资源,程序会陷入阻塞,等待下载文件的子线程完成,才会退出程序。但是子线程对象中的任务函数会继续执行,当任务执行完毕之后join()会清理当前子线程的相关资源然后返回,同时,调用该函数的线程解除阻塞继续向下执行。
chrono时间库 可以使用std::this_thread::sleep_for代替Unix操作系统专有的usleep。除了接受一个时间段sleep_for,还有接受一个时间点的sleep_until,表示让当前线程休眠到某个时间点。利用CPP强类型的特点,明确区分时间点和时间段,明确区分不同的时间单位。
Qt暗黑风格无边框可拉伸窗体 在使用Qt开发软件时,通常会通过布局以及Qss美化界面,但窗体自带的标题栏不符合软件开发的需求,所以必须去掉Qt自带的标题栏,但去掉后就会失去窗体的之前的属性,比如自由拉伸以及可以拖拽标题栏等。暗黑无边框窗体。
QSS美化控件教程(一) 在使用Qt开发界面程序时,常用控件的美化是一件繁琐的事情,收藏一些基本控件的美化样式,可以在项目开发时节省大量时间,本篇文章由此而出,收集常用的控件美化样式。以下qss代码是直接在Qt Designer设计界面中样式表中添加或者使用QFile读取qss代码进行修改控件样式。
QCustomPlot的使用教程(一) QCustomPlot是Qt的一个小型第三方图表库,支持静态/动态曲线、柱状图、蜡烛图、频谱图等。使用方便,仅需在项目中加入头文件qcustomplot.h和qcustomplot.cpp源文件即可,或者把它当做一个库来添加到项目当中,该绘图库专注于制作美观、出版物质量高的2D绘图、图形和图表,并为实时可视化应用程序提供高性能。
Qt实战-程序启动动画 很多的商用软件在启动之前都会有一段启动动画,当启动动画消失时,软件的主界面也就会呈现。程序的启动动画可以帮助我们了解到软件的一些相关信息,下面将介绍一个我自己设计的比较美观的程序启动动画。
Qt MVC之自定义代理 在Qt的MVC(Model-View-Controller)架构中,代理(Delegate)扮演着很重要的角色。代理用于控制Model在View中的显示方式,并负责处理用户与View的交互事件。在一些特殊的情况下,Qt提供了一些内置代理(例如QStyledItemDelegate、QItemDelegate等)用于控制View的显示方式。但是有时候,我们需要更加灵活地控制View的显示方式,这时就需要自定义代理。自定义代理需要继承。
Qt MVC之自定义Model 在Qt中,MVC(Model-View-Controller)模式是常用的模式之一,用于将应用程序中的数据(Model)与用户界面(View)分离开来。自定义模型允许开发者使用自己的数据结构作为模型,并将其与Qt的视图部件结合使用。自定义模型需要实现Qt中的抽象模型类(QAbstractItemModel)中的纯虚函数。其中,最基本的函数包括rowCount()、columnCount()、data()和index()函数。
Qt MVC结构之Model模型 MVC 就是Model-View-Control模式的简称,包括模型层(Model), 视图层(View), 控制层(Controller)。Model主要负责管理数据,View主要用来显示数据,Controller主要用来操作数据,控制View联动。Qt也采用了这个模式,模型层用Model,视图层用View,控制层改名叫了代理Delegate
QGraphicsView进阶篇 QGraphicsView 通过 QGraphicsView::setMatrix() 支持和 QPainter 一样的仿射变换,通过对一个视图应用变换,你可以很容易地支持普通的导航特性如缩放与旋转。
QGraphicsView初级篇 QT4.2开始引入了Graphics View框架用来取代QT3中的Canvas模块,并作出了改进,**QGraphicsView框架实现了模型-视图结构的图形管理,能对大量图元进行管理,支持碰撞检测,坐标变换和图元组等多种方便的功能**。
QPainter的使用 Qt的绘图系统允许使用相同的API在屏幕和其他打印设备上进行绘制,整个绘图系统基于QPainter、QPaintDevice和QPaintEngine三个类。**QPainter用来执行绘制操作,QPaintDevice是一个抽象的二维空间,这个抽象的二维空间允许QPainter在上面进行绘制,也就是QPainter的工作空间。QPaintEngine为QPainter提供了在不同设备上进行绘制的接口**。QPaintEngine类应用于QPainter和QPaintDevice之间,通常对开发