Qt
文章平均质量分 80
lucky-billy
灵活的胖子!
展开
-
QML 中自定义虚拟键盘
我们知道Qt 中虚拟键盘模块遵循的是 GPL 协议,是不可用于商业发布的。如果项目中使用了 Qt 自带的虚拟键盘,在正式发布项目时必须要开源才可以。因此为了避免使用此模块就需要自己来实现一个虚拟键盘功能。博主在网上也搜到了一些资源,基本上都是 widget 来实现的,用 qml 来做的很少,这里我们以官方的虚拟键盘为参照,用 qml 自己实现一个键盘。原创 2024-01-03 10:06:06 · 1061 阅读 · 2 评论 -
Qt 中使用 MySQL 数据库保姆级教程(上)
在 Qt 中默认只搭载了 QSqlLite 数据库驱动,若要使用其他数据库需要自己下载数据库,并将数据库驱动加载到 Qt 中,这里以最常用的 MySQL 数据库为例,记录一下操作流程,方便后期回顾。目前使用的版本如下Qt:5.15.2。原创 2023-12-26 17:07:53 · 874 阅读 · 0 评论 -
Qt 中使用 MySQL 数据库保姆级教程(下)
上篇中我们安装好了 MySQL 数据库和 Navicat 软件,下面在 Qt 中尝试使用数据库。原创 2023-12-27 11:05:44 · 1708 阅读 · 1 评论 -
Qt中调用C#制作的com组件
这里记录一下在 Qt 64位程序中调用 C# 制作的 com 组件的流程,方便后期自己回顾。原创 2023-04-18 14:55:35 · 1697 阅读 · 2 评论 -
Qt中各个功能模块遵循的协议
不同版本,协议有可能会变。同一版本,在不同时间期间,协议也可能会变。Qt 中各个模块的协议,是在变化的,并不是一成不变。原创 2023-10-16 09:42:26 · 384 阅读 · 0 评论 -
面试题整理
所谓的回调函数,就是预先在系统中对函数进⾏注册,让系统知道这个函数的存在,以后,当某个事件发⽣时,再调⽤这个函数对事件进⾏响应。定义⼀个类的成员函数时在该函数前加 CALLBACK 即将其定义为回调函数,函数的实现和普通成员函数没有区别C++如何使用类的成员函数作为回调函数(A):(B))原创 2023-05-11 16:48:17 · 1794 阅读 · 0 评论 -
Qt 中开启线程的五种方式
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处简介在开发过程中,使用线程是经常会遇到的场景,本篇文章就来整理一下 Qt 中使用线程的五种方式,方便后期回顾。前面两种比较简单,一笔带过了,主要介绍后面三种。最后两种方法博主最喜欢,不需要继承类,可以直接把需要执行的函数放到线程中去运行1. 继承 QThread 重写 run 函数class Thread : public QThread{ Q_OBJECTpublic: virtual vo原创 2021-09-01 16:34:07 · 15814 阅读 · 5 评论 -
Qt 信号与槽的各种连接方式
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处简介信号槽是 Qt 框架引以为豪的机制之一。当用户触发某个事件时,就会发出一个信号(signal),这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会连接(connect)绑定一个函数(称为槽slot)来处理这个信号。也就是说当信号发出时,被连接的槽函数会自动被回调。这有点类似与开发模式中的观察者模式,即当发生了感兴趣的事件,某一个操作就会被自动触发信号和槽是Qt特有的信息传输机制,是Qt设计原创 2021-09-01 11:32:02 · 9196 阅读 · 2 评论 -
Qt 应用程序发布
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处简介说到 Qt 应用程序的发布,首先需要了解程序的编译。Qt 程序的编译分为静态编译(static)和动态编译(shared)。静态编译的特点是只生成一个可执行文件,可直接运行程序,不需要依赖库,内存占用小,但是要完成静态编译的门槛比较高,需要自己下载 Qt 源代码去配置去编译,而且有些 QML 的库是无法静态编译的;而动态编译就是我们最常用的方式,生成一个可执行文件,此文件的运行需要很多 Qt 的库文件和系统原创 2021-08-31 11:02:48 · 2032 阅读 · 2 评论 -
Qt 元对象系统
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处什么是 Qt 元对象系统Qt 的元对象系统(Meta-Object System)提供了对象之间通信的信号与槽机制、运行时类型信息和动态属性系统。元对象系统由以下三个基础组成:QObject 类,是所有使用元对象系统的类的基类。换句话说只有继承 QObject 才能使用元对象系统;Q_OBJECT 宏,在一个类的 private 部分声明 ,使得类可以使用元对象的特性,如动态属性、信号与槽;MOC(原创 2021-05-02 19:05:36 · 2587 阅读 · 2 评论 -
Qt使用qwtplot3d绘制3D曲面
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处下载 qwtplot3d 源代码下载地址1:官网下载下载地址2:网盘下载提取码:ysk3编译生成库文件用 Qt 打开工程之后,需要先在 pro 文件中做一些修改:win32:TEMPLATE = vclib更改为 win32:TEMPLATE = lib添加库路径 LIBS += -lopengl32 -lglu32开始编译但是会报错,error: C3861: “gluErrorStrin原创 2020-11-26 13:25:23 · 7008 阅读 · 7 评论 -
GX Works3 设置 TCP + SLMP 与三菱FX5U通信
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言之前博主与三菱Q系列的 PLC 通信,是通过 GX Works2 来完成 PLC 设置,通过 TCP 和 MX 协议来完成通信。具体请参考:Qt中使用TCP和MC协议与三菱Q系列PLC通信随着项目的进展,PLC 从Q系列升级到了最新的 FX5U 系列,而 FX5U 系列无法通过 GX Words2 来编程,需要升级到 GX Words3。PLC 的设置也有了一些改动,这里做一下记录。GX Works2原创 2020-10-30 16:50:14 · 14232 阅读 · 5 评论 -
Qt中使用TCP和MC协议与三菱Q系列PLC通信
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言三菱 MC 协议介绍设置 PLC在 Qt 中的应用原创 2020-10-21 21:47:38 · 16523 阅读 · 14 评论 -
Qt调用工业相机之海康威视相机
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处开发环境操作系统:Windows 10 1903 18362.778相机型号:MV-CA020-10GM相机软件:MVS_SDK_V3_2_0_VC90_Runtime_190626,MVS_STD_3.1.0_181229软件版本:Qt 5.12.8, vs2017 Community通信方式:GigE - 千兆以太网通信协议驱动与SDK开发包和驱动下载地址提取码:2hhn安装驱动和开发包完成原创 2020-08-03 13:05:52 · 13226 阅读 · 16 评论 -
Qt 串口通信之使用三菱PLC控制程序
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言上位机与PLC通信有很多种方式,比如CPU编程口、网口、串口、总线连接等等。本章节记录一下如何通过串口让PLC控制程序执行操作。博主之前写过一章使用网口与PLC通信,具体请参考:Qt使用 MX Component 插件与三菱PLC通信功能预览通信协议所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,原创 2020-08-03 08:02:33 · 4435 阅读 · 3 评论 -
Qt设置软件的使用期限
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处原创 2020-07-29 13:03:51 · 7584 阅读 · 336 评论 -
Qt读写注册表
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言在软件开发过程中,我们经常需要在本地存储数据,除了使用本地数据库、ini、text、xml、json等格式的文件之外,我们还可以往注册表中写入数据。这一章节就来介绍一下如何使用QSettings读写注册表。注册表编辑器单机【开始】-> 运行输入 regedit 打开注册表Windows注册表实质上是一个庞大的数据库,它存储着下面这些内容:用户计算机软、硬件的有关配置和状态信息,应原创 2020-07-28 08:37:44 · 7818 阅读 · 0 评论 -
Qt使用QSettings读写ini文件
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处QSettings 简介QSettings 类提供了ini文件读写,注册表读写的功能QSettings::Format有两种:QSettings::NativeFormat 在windows平台可以读写windows注册表QSettings::IniFormat 可以读写ini格式的配置文件示例#include <QSettings>#include <QDebug>原创 2020-07-27 17:07:40 · 3989 阅读 · 2 评论 -
Qt使用QCustomplot图形库
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言在最近的项目中需要显示一些图形和图表,博主感觉Qt自带的 QtCharts 比较简陋,于是往第三方库上考虑。对比了QCustomplot、QWT、ECharts等一些比较热门的图形库,博主这里选择了QCustomplot,这章节记录一下使用过程,方便后期回顾。QCustomPlot 是一个基于Qt C++的图形库,用于绘制和数据可视化,并为实时可视化应用程序提供高性能服务。它没有进一步的依赖关系,并有着良原创 2020-07-27 15:35:24 · 4153 阅读 · 0 评论 -
Qt中使用openCV修改图片局部颜色算法优化
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言最近接到一个功能需求,用相机定时抓取图像在界面上显示,相机抓取图像的间隔设定在了100ms一次。当用户修改相机的曝光时间时,需要判断是否过曝,如果过曝了就把像素值修改为红色。博主这里遇到了一个问题,对每张图片进行是否过曝检测,由于检测算法的执行时间太长导致了界面的卡顿,每100ms就有一张新的图像,然而计算并修改曝光时的像素值就花费了超过100ms(在一个很垃圾的测试机子上运行),最后通过查阅资料,与大神原创 2020-07-24 09:39:03 · 991 阅读 · 0 评论 -
Qt中的QString与int、const char *、ASCII码互相转换
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处1. QString 转 intbool ok;QString str1 = "0xf8";int value1 = str1.toInt(&ok, 16);qDebug() << ok << " " << value1; // true 248QString str2 = "012";int value2 = str2.toInt(&ok,原创 2020-05-20 15:23:35 · 9186 阅读 · 0 评论 -
Qt使用 MX Component 插件与三菱PLC通信
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言软件与文档下载MX Component 官网下载地址MX Componet 4.16S 下载:链接:https://pan.baidu.com/s/1dKXyzRn8siaKGLp5oD6LFw提取码:8jrwMX Componet编程手册-中文.pdf 下载:链接:https://pan.baidu.com/s/11f2UyMHbG_abWRuH5e_v9Q提取码:rv7pMX Comp原创 2020-05-13 09:11:05 · 13129 阅读 · 20 评论 -
Qt之QGraphicsView实战篇
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言前面的章节介绍了 Graphics View 绘图架构,终于到实战了,真的是千呼万唤始出来!这一章节就用 Graphics View 绘图架构来做一个绘图工具,实现一些基础图形的绘制,废话不多说先来看一下结果演示:图形绘制介绍我们知道简单的几何图形,只要确定两个点就可以完成绘制。比如要画一个...原创 2020-05-05 19:38:47 · 46335 阅读 · 309 评论 -
Qt调用 OpenCV 显示图片
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处OpenCV3.0以后,图像采用Mat格式进行存储,Qt中图像存储采用的是QImage类,因此,如果需要再Qt中显示OpenCV处理过程中的图像,需要将Mat类对象表示的图像转换为QImage类对象表示的图像。同时,由Mat格式采用BGR的存储顺序,而QImage格式采用的是RGB存储顺序,因此,转换过...原创 2020-04-24 11:35:29 · 5592 阅读 · 2 评论 -
使用VS2017和Qt编译OpenCV
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言因为最近项目中用到了工业相机作业,涉及到图像处理无疑就要用到 OpenCV 了,此章节就记录了 OpenCV 从源码到编译,再到应用的过程。开发环境:Qt 5.12.8, vs2017 Community软件版本:opencv-4.2.0-vc14_vc15,cmake-3.17.1-win6...原创 2020-04-23 23:26:23 · 3171 阅读 · 1 评论 -
Qt调用工业相机之映美精相机
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处原创 2020-04-21 15:57:42 · 5893 阅读 · 9 评论 -
Qt调用工业相机之巴斯勒相机
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处原创 2020-04-21 15:07:16 · 8742 阅读 · 10 评论 -
Qt中的内存泄漏
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处https://blog.csdn.net/weixin_34166472/article/details/92651322https://blog.csdn.net/envenler/article/details/8020064https://blog.csdn.net/u013711616/a...原创 2020-04-11 19:43:11 · 4190 阅读 · 1 评论 -
Qt 对象树
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处Object Tree Model先来看一下 QObject 的构造函数:通过帮助文档我们可以看到,QObject 的构造函数中会传入一个 Parent 父对象指针,children() 函数返回 QObjectList。即每一个 QObject 对象有且仅有一个父对象,但可以有很多个子对象。按...原创 2020-04-08 20:14:55 · 5745 阅读 · 1 评论 -
Qt 渲染机制
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言众所周知,Qt 是一个跨平台C++图形用户界面应用程序开发框架,我们使用 Qt 最多的就是用来开发GUI程序。在HMI开发过程中,最直接影响人们审美的就是程序的流畅程度,即应用程序在交互过程中是否会出现延迟或者卡顿。而这些都涉及到了一个知识点,就是 Qt 中的渲染机制,了解 Qt 是如何完成渲染的...原创 2020-04-07 17:44:29 · 8657 阅读 · 0 评论 -
Qt之QGraphicsView进阶篇
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处打印拖拽碰撞检测光标与工具提示动画OpenGL渲染Item组图形组件和布局嵌入组件...原创 2020-04-06 15:50:35 · 34286 阅读 · 8 评论 -
Qt之QGraphicsView入门篇
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处https://www.jianshu.com/p/e010be59f762https://www.xuebuyuan.com/991404.htmlhttps://baijiahao.baidu.com/s?id=1631213688985324831&wfr=spider&for...原创 2020-04-05 20:28:40 · 80372 阅读 · 20 评论 -
Qt中的模态、非模态、半模态窗口
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处简述区别模态对话框简单一点讲就是在弹出模态对话框时,除了该对话框,整个应用程序的窗口都无法接受用户响应,处于等待状态,直到模态对话框被关闭。这时一般需要用户点击对话框中的确定或取消按钮来关闭该对话框,程序得到对话框的返回值,并根据返回值进行相应的操作,之后将操作权返回给用户。这个时候用户就可以...原创 2020-03-30 22:05:31 · 3393 阅读 · 0 评论 -
Qt中 gui 模块和 widgets 模块的区别
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处继承关系QObjectQCoreApplicationQGuiApplicationQApplication所处模块QCoreApplication定义在core模块中,为应用程序提供了一个非gui的事件循环;QGuiApplication定义在gui模块中,提供了额外的gui相关的设置,比如...原创 2020-03-30 09:46:26 · 7669 阅读 · 0 评论 -
Ubuntu下Qt使用PCL可视化点云
简介最近做了一些激光雷达的数据采集和显示,中间用到了一些技术想在这里分享一下。原创 2019-06-24 15:21:48 · 4530 阅读 · 1 评论 -
Qt 简介
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处Qt 是什么?Qt 是一个跨平台的 C++图形用户界面库,是一个针对桌面、嵌入式、移动设备的一个跨平台的应用程序开发框架,支持Linux、OS X、Windows、VxWorks、QNX、Android、iOS、BlackBerry、Sailfish OS等平台。Qt 在1991年由挪威 Troll......原创 2019-07-29 14:18:50 · 7069 阅读 · 0 评论 -
Qt Linux 环境搭建
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处目的:在Ubuntu 16.04 LTS 上安装 Qt 5.12.4第一:命令行最粗暴的方法就是直接通过命令行安装QtQt4:sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designerQt5:...原创 2019-07-30 15:53:31 · 641 阅读 · 1 评论 -
Qt Windows 环境搭建
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处IDE和编译器的选择众所周知 Qt Creator 是一个 IDE,与 Visual Studio 类似,可以用来开发应用程序。而IDE可以使用不同的编译器与调试器来编译及调试程序。下面介绍一下 Qt Creator 和 Visual Studio的编译器和调试器Visual Studio:编...原创 2019-07-31 10:16:11 · 862 阅读 · 0 评论 -
Qt 快捷键
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言Qt中的快捷键有很多是和 Windows系统快捷键一样的,也有一些是 Qt 所特有的。而为了方便用户开发,Qt也提供了自定义快捷键的功能。想要查看 Qt 有哪些快捷键的小伙伴们,可以在Qt 的官网上查看地址:https://wiki.qt.io/Qt_Creator_Keyboard_Shor...原创 2019-07-31 14:48:11 · 988 阅读 · 1 评论 -
Qt 进阶之路
作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处原创 2020-04-05 15:29:47 · 6101 阅读 · 2 评论