键盘会跳舞
不积跬步,无以至千里
展开
-
Qt 拖拽事件示例
拖拽事件简单示例原创 2024-01-23 11:43:11 · 380 阅读 · 0 评论 -
Qt‘s 撤销框架(Qt‘s Undo Framework)
Qt 撤销框架原创 2024-01-23 10:39:08 · 366 阅读 · 0 评论 -
OPC服务器开发之WtOPCSvr(2)
在物联网兴起之前,OPC这玩意就出来了,但是知道和用的人并不多。 OPC技术从某些角度来说,可以说还是掌握在比较少数的一部分人手中。这可能也是由于工控行业相对闭塞和保守的原因造成的。 就目前来说关于OPC开发的SDK或者开源项目还是比较多的,我就说几个基于C++的主流项目,LightOPC、OpcWorkshop、WtopcSvr,国内的也还有一些公司就是基于这几个主流项目然后发布...原创 2019-10-24 08:50:46 · 1783 阅读 · 9 评论 -
OPC服务器开发之WtOPCSvr——开发文档(1)
WTOPCSvr DLL User’s GuideThe WinTECH Software Rapid Development DLL for OPC Servers, (WTOPCSvr), provides an easy to use API for integrating custom data with OPC. All the details of COM and O...原创 2019-10-24 08:48:20 · 1744 阅读 · 0 评论 -
OPC服务器简介和入门介绍
什么是OPC? OPC代表OLE(对象链接和嵌入)过程控制。OPC是最流行的数据连接标准,用于在控制器,设备,应用程序和其他基于服务器的系统之间进行通信,而无需进入数据传输的自定义驱动程序。 工厂自动化系统或过程由来自不同供应商或供应商的不同协议的不同控制器和设备组成。这些控制器和设备对于与业务或管理系统进行通信至关重要。因此,OPC创建了一个环境来访问来自这些供应商的实时工厂数据...原创 2019-10-23 17:45:42 · 18633 阅读 · 0 评论 -
物联网平台如何为OPC服务器创造新生命力
在前一篇的《OPC服务器简介和入门介绍》中为大家介绍了OPC的体系结构。传统opc服务器具有的如下几个优势特点:1、支持与不同的供应商沟通。2、消除系统中对自定义驱动程序的需求。3、减少设备负载4、方便访问数据 这让我们在纷繁的工业设备和各种协议之间搭建了一条桥梁,已然很香。不过却又存在一个让人头疼的问题,数据只能在Local System中交互,有没有一...原创 2019-10-23 17:50:27 · 406 阅读 · 0 评论 -
QCefView源码优化
QCefView项目源码的构建部分这里就不赘述了,有问题的朋友可以回到《QCefView(1)—— CMAKE项目、库文件生成和项目测试》查看相关介绍。本次优化主要包括以下几个部分:(1)设置部分,关闭代理服务器,关闭同源策略,使用系统flash等。(2)增加F5按键刷新页面和F12调用控制台调试工具。更多按键快捷操作可以参考代码增加部分。上代码:1、打开:QCefView\CefViewBrowserApp\QCefViewBrowserApp.cpp修改如下函数:voi...原创 2020-09-14 17:55:11 · 1082 阅读 · 9 评论 -
QCefView源码优化-- 第二弹
经过前面相关部分文章的分享,大家使用libcefview库也可以快捷的做出自己的应用,来嵌入网页了。但是有一个很糟心的问题肯定萦绕着你,特别是在某些需要登录的平台,每次启动都需要重新输入密码;另外,有些网页本来就做的不怎么样,初次加载非常慢,使用libcefview开发的应用,因为没有记住缓存的原因,每次都是从零加载渲染,痛苦不堪! 针对这些问题, 今天跟大家分享的代码优化部分,就是改造QCefView项目,添加cef的全局属性设置。 讲这部分之前,(可以打开cef项目源码,参考 ...原创 2020-09-22 16:26:52 · 1228 阅读 · 0 评论 -
QCefView + QWebChannel + Vue 项目开发
看到标题,你大概能猜到这篇我想讲述的是什么了。对的,将要同大家分享的是一种目前PC软件常见的开发方案。前言1、桌面应用为什么要使用Vue等框架开发,而不再是Qt UI开发? 界面开发我们使用java语言,通过Vue框架快速开发,好处不言而喻,开发速度快,界面美观,同时兼具跨平台特性。其次,网页端与PC应用可同步开发和维护,同步更新,上线快,后期维护成...原创 2020-04-09 19:45:42 · 4903 阅读 · 4 评论 -
QCefView(1)—— CMAKE项目、库文件生成和项目测试
目录下载资源说明文档 Quick Start with Qt+Cefhttps://tishion.github.io/QCefViewCMAKE生成.sln项目文件库文件编译和测试项目编译运行测试QCefView自带的项目QCefViewTest下载资源https://github.com/tishion/QCefView说明文档Quick Sta...原创 2020-04-02 23:45:12 · 2936 阅读 · 12 评论 -
QCefView(2)—— 实现Qt与JS之间的通讯
目录前言 主要项目文件Qt与JS通讯1、Qt发送消息给JS部分:2、Qt接收JS消息部分:3、JS接收Qt消息部分:4、JS发送消息给Qt:程序运行效果图:前言 在上一篇(QCefView(1)—— CMAKE项目、库文件生成和项目测试)同大家一起分享了QCefView的编译环境搭建、库文件编译,和测试项目运行等,本章,主要和大家分享和研...原创 2020-04-09 17:52:19 · 2978 阅读 · 0 评论 -
QCefView :高DPI模式下网页的显示问题
这个问题,网上已经有解决的方案。具体可以参考 高dpi下cefveiw显示问题解决方案原创 2021-05-31 17:58:58 · 603 阅读 · 1 评论 -
QCefView 部分问题和解决方法
正好最近又回过来做QCefView相关的一个项目优化工作了。这里对发现的几个问题和相关的优化方便提供给大家参考。也许正好你的项目中也用得到。 问题一:使用QCef加载网页速度慢的问题? 这个问题通常可能由于以下原因导致:PC设置了网络代理服务 CEF使用chrom内核,你的网络设置中正好勾选了”网络自动检测“选项 cef默认是没有设置缓存页面选项的,如果需要可以添加(第一次加载仍然可能慢,后面使用会相对快一些) 加载的网页本身存在问题,加载比较缓慢,可以通过调试工具查看Water...原创 2020-09-14 17:28:15 · 2792 阅读 · 0 评论 -
软加密的设计和简单实现示例
C++ 软加密介绍和简易实现原创 2024-01-04 12:43:44 · 969 阅读 · 0 评论 -
Qt通用属性工具:随心定义,随时可见(三)
Qt对象属性编辑器原创 2024-01-18 14:27:49 · 653 阅读 · 0 评论 -
基于Qt实现的自定义简易Lua脚本编辑器
无图不香.....技术点:<1>Qt Gui.简单的控件和基础的qss知识足以<2>Lua和C++交互。编辑器部分基本上用的是网上某个不错的编辑器的源码。简单贴一下://codeeditor.h#ifndef CODEEDITOR_H#define CODEEDITOR_H#include <QPlainTextEdit>#i...原创 2019-10-17 19:29:47 · 2922 阅读 · 3 评论 -
关于Qt和C++中的反射机制实现与运用(1)
一、Qt的反射机制首先我们大致理解下反射机制的意义。对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为反射机制。C++语言本来是不支持反射机制的,不过在Qt框架中,实现了一套自己的反射机制。具体实现:(1)继承QObject的类(2)在该类中需要做反射的那个函数前写一个宏Q_INVOKABL...原创 2019-10-11 15:31:44 · 952 阅读 · 0 评论 -
Qt中的C++技术 学习总结:(2)Traits技术封装
Traits技术以一个统一的编程接口,描述各种数据类型的基本特征。例如,对于基本类型float,如果将这种类型所能表示的最大浮点数写为以2为底的指数形式,其指数部分的最大值为128。在float.h中这个常量被定义为FLT_MAX_EXP。而对于基本类型double,这个最大值为1024,被定义为DBL_MAX_EXP。类似地,float和double所能够表示的最小正数也不一致,分别被定...原创 2020-03-02 23:17:54 · 352 阅读 · 0 评论 -
Qt中的C++技术 学习总结:(1)主类模板与特化类模板
一个类模板可以具有一个或者多个模板参数。当这组模板参数被设定为一组具体类型时,实例化后的类就能够处理这组具体类型的数据。模板参数可以被设定为任意类型,使得这个类模板可以处理任意类型的数据,这是泛型编程思想所要达到的目标。然而,在某些场合下,当模板参数被设定为某些特定类型时,我们希望实例化后的类具有特定的行为,这就需要使用类模板特化技术。//mystack.h#ifndef MYST...原创 2020-03-02 23:09:03 · 342 阅读 · 0 评论 -
QScopedValueRollback —— 实现变量值的回滚
实现变量值的自动回滚原创 2023-01-05 10:30:57 · 161 阅读 · 0 评论 -
Qt隐式共享浅析
隐式共享浅析原创 2024-01-08 10:49:42 · 700 阅读 · 0 评论 -
Qt 状态机框架:The State Machine Framework (二)
Qt 并行状态等复杂状态演示示例原创 2024-01-17 11:36:55 · 1059 阅读 · 0 评论 -
QScopeGuard —— 定义函数return前执行的回调方法
当函数执行return退出前,会先释放函数栈上的局部变量,QScopeGuard局部变量执行析构方法,在析构中判断注册的回调函数是否执行(默认为执行),达到自动return前自动执行回调函数的目的~有时,我们的业务比上述伪代码中的业务逻辑可能更加复杂,每次在return在前我们又不得执行 do something before return 的方法。在编写复杂的方法时,我们常常会不得不在多处执行业务逻辑,并且某些异常会提前return。那咱么整理下,搞成个C++通用的类。的函数模板,用于注册回调函数。原创 2023-01-03 11:26:54 · 469 阅读 · 0 评论 -
Qt项目实战杂谈一二:网页/应用嵌入技术
老牌软件平台化思路和杂谈原创 2022-08-26 13:56:01 · 597 阅读 · 6 评论 -
Qt智能指针之QScopedPointer
内存释放的问题是C++中比较头疼的问题,合理的使用智能指针能有效的帮助我们减少忘记释放内存,导致的内存泄露问题。本文以Qt中的QScopedPointer为例,通过讲解其用法,从源码深度剖析其实现方式。QScopedPointer的使用原理比较简单,实际上就是通过QScopedPointer类型,记录申请的某一片内存空间的地址,在QScopedPointer类型变量生命周期结束时,会自动调用QScopedPointer的析构函数,从而达到自动释放堆上申请的内存空间的目的。原创 2023-01-06 14:52:38 · 2618 阅读 · 0 评论 -
Qt : d指针和q指针?
在Qt的源码中,我们看到大量的Q_D() 和Q_P() 宏的调用,查看代码时在一定程度上增加了复杂度。先看看两个宏的原型:#define Q_D(Class) Class##Private * const d = d_func() #define Q_Q(Class) Class * const q = q_func() ...原创 2021-06-20 15:11:55 · 2722 阅读 · 3 评论 -
Qt 属性系统(The Property System )
一、什么是Qt属性系统Qt提供了一个复杂的属性系统,类似于一些编译器供应商提供的属性系统。但是,作为一个独立于编译器和平台的库,Qt不依赖于非标准的编译器特性,如_property属性或[property]。QT解决方案与任何标准的C++编译器在每个平台QT支持下都有作用。它基于元对象系统,也通过信号和槽提供对象间通信。二、属性声明需要使用在继承于QObject的子类中使用Q_PROPERTY()宏来声明某个属性。详细格式如下: Q_PROPERTY(type name ...原创 2021-05-05 18:01:16 · 969 阅读 · 0 评论 -
2024了,我不允许你还不会:Qt查看与调试源码
Qt源码调试筑基期原创 2024-01-08 16:25:17 · 1170 阅读 · 0 评论 -
Qt源码分析:Qt程序是怎么运行起来的?
Qt 源码分析入门篇原创 2024-01-08 17:42:22 · 1198 阅读 · 0 评论 -
Qt 状态机框架:The State Machine Framework (一)
Qt状态框架,广泛适用于串行、并行等混合复杂模式下的事件驱动状态框架开发原创 2024-01-16 15:57:41 · 1394 阅读 · 0 评论 -
Qt通用属性工具:随心定义,随时可见(二)
qt属性编辑器原创 2023-12-22 17:01:17 · 419 阅读 · 0 评论 -
使用脚本拓展CPP应用程序之——JS脚本
在前面的篇文章中,向大家介绍过《基于Qt实现的自定义简易Lua脚本编辑器》,实际上就是使用Lua脚本拓展cpp应用程序。本文着重向大家分享使用javaScript脚本拓展CPP应用程序的方法。在接下来的多语言混合编程系列博文中,我还将和大家一起分享使用python、go以及shell(windows脚本和Linux脚本)拓展CPP应用程序的方法。 开始正题前,咱们先演示下效果。一、项目准备编程环境:Qt4.8.3 + MingW编程语言:C++ 及JavaScript...原创 2020-05-23 18:15:34 · 699 阅读 · 0 评论 -
Qt项目实战 杂谈一二:中文乱码事情小,处理不好头发少
Qt中文乱码解决方案原创 2022-08-26 13:07:41 · 1288 阅读 · 0 评论 -
基于Qt的自定义软件登陆界面
效果图如上,界面布局和相应样式设置都比较基础,不做过多赘述。如果需要源码,可留言。原创 2019-10-17 18:55:00 · 552 阅读 · 6 评论 -
Qt中的C++技术 学习总结:(3)类型分类(Type Classification)技术
设一个模板具有模板参数T,表示C++中的某种类型。有些情况下,随着T所取类型的不同,该模板会做不同的处理。在设计该模板时,我们需要了解T的具体信息。在编写一个具有模板参数T的类模板时,有时需要了解T所取类型的具体信息,以做不同的处理。这是一个棘手的问题,因为C++语言只有很少几个运算符能够处理“类型”:sizeof、dynamic_cast以及typeid。和我们想要获取的类型信息相...原创 2020-03-03 09:57:23 · 538 阅读 · 0 评论 -
Qt通用属性工具:随心定义,随时可见(一)
基于Qt属性系统的属性编辑工具,使用MVC模式,适用于各种需要属性配置交互的业务场景原创 2023-12-22 15:23:40 · 742 阅读 · 0 评论 -
Qt : 枚举类型的反射
enum DockOption { AnimatedDocks = 0x01, AllowNestedDocks = 0x02, AllowTabbedDocks = 0x04, ForceTabbedDocks = 0x08, // implies AllowTabbedDocks, !AllowNestedDocks VerticalTabs = 0x10, // implies AllowTabbed...原创 2021-06-20 17:31:49 · 1098 阅读 · 1 评论 -
Qt之自定义图像轮播组件
经常会看到轮播组件的运用场景,今天动手简单的写了一个轮播控件程序,支持自动定时轮播和手动点击切换,支持自定义轮播图片数量。废话也不多说,尽然是分享,那就分享的明明白白。觉得不错,记得点赞。先上图:具体代码如下:// gcarouselfigurewidget.h#ifndef GCAROUSELFIGUREWIDGET_H#define GCAROUSELFIGU...原创 2019-04-11 16:26:24 · 937 阅读 · 0 评论 -
Qt - threading : QThread、QFuture、QRunnable、QThreadPool
Qt多线程的N种实现方法原创 2023-01-11 10:37:23 · 529 阅读 · 0 评论