Qt
文章平均质量分 58
喵喵叫的猴
只争朝夕,不负韶华
展开
-
使用Qt/C++实现WGS84、高德GCJ-02、百度BD-09坐标系间相互转化
将不同坐标系间的转换封装到一个GeoTranslate类中,该类转换函数不仅支持Qt/C++调用,同时可在QML中直接调用,配合上QML/Map很方便,我将该类做了个Demo,方便使用者使用原创 2023-06-29 20:39:56 · 2204 阅读 · 1 评论 -
QML地图Map中使用QPainterPath,并显示任意点经纬度位置
QML地图Map中提供了供绘制图形的组件,例如MapPolyline,MapCircle等,但是这些组件在绘制复杂轨迹时就显得功能不够全面,因此我们将QPainterPath在Map中进行使用并进行绘制,并使用C++和Qml中的函数进行相互调用计算获取点屏幕坐标和经纬度坐标。例子中使用了QPainterPath的QPainterPath::pointAtPercent获取绘制的轨迹全过程中的各个位置的经纬度。原创 2022-11-17 21:49:10 · 3163 阅读 · 0 评论 -
Qt使用QQuaternion对空间矢量QVector3D进行旋转
空间中的QVector3D既可以代表空间中的点位置,也可以表示空间矢量。为什么要对空间矢量进行旋转呢,比如有一个空间矢量在空间中代表了镜头前进的方向(即第一人称模式),初始时该矢量指向正北方向QVector3D(0,0,1),在镜头前进过程中,镜头旋转了r度,此时镜头前进的的矢量就需要相应的旋转r度,Qt中提供了QQuaternion用于三维空间中的矢量旋转原创 2022-04-01 14:15:56 · 5879 阅读 · 0 评论 -
QML 地图修改插件源码(五),Map添加自定义地图类型,并动态修改地图类型
QML的地图Map中提供了属性activeMapType : MapType用于设置当前地图的类型,以OSM地图插件为例,OSM地图提供了多种地图类型,下面介绍如何修改OSM插件的源码添加需要的地图类型,并在Map动态的更换地图类型原创 2022-03-29 21:30:12 · 2601 阅读 · 2 评论 -
Qt QML 自绘GPS方位校北仪控件
该控件使用QQuickPaintedItem进行绘制后在QML中进行使用,相关部分参数已提供设置接口供QML中调用,如果该控件需要在QWidget中使用,将QQuickPaintedItem修改为QWidget即可。在Demo中演示了如何添加不同方位夹角,不同颜色的指针,并根据指针名称动态修改数据。控件提供的相关接口如下,如果有其他接口需求,可下方留言提供建议,本人不断完善。原创 2022-01-15 10:10:58 · 1120 阅读 · 7 评论 -
Qt QML绘制热力图实现原理
由于需要在QML地图中使用,因此使用QQuickPaintedItem绘制,并注册至QML中使用使用QImage绘制渐变透明度图,以每个位置点中心绘制透明度渐变的圆,圆的半径就是热力图的衍射程度。这样同一个位置叠加的点越多,该位置的越不透明。假定所有点中重复度最高的位置(重复度为N)透明度为不透明,则每个衍射渐变圆的透明度就是255/N。得到的QImage图片每个像素点透明度则代表了该位置点的重复程度,将该图片上每个像素点透明度转为不同的颜色,绘制成的新图片就是热力图原创 2021-12-06 13:04:53 · 2148 阅读 · 0 评论 -
Qt QString(包含中文)和wchar_t*相互转化
需将QString字符串转换为wchar_t*,网上提供了很多转换方法,但经过测试,很多方法带有中文字符时转换就会出错,最终测试得出以下方法可行,不限中英文和字符长度:原创 2021-09-17 15:47:59 · 2058 阅读 · 0 评论 -
Qt/QML离线地图瓦片下载工具(瓦片地图)
QML中加载离线瓦片地图时,就需要将瓦片地图下载到本地,并按照规定的瓦片命名方式进行命名。因此我制作了该瓦片地图下载工具,该工具可选择不同地图类型进行下载。原创 2021-06-13 19:28:11 · 7460 阅读 · 21 评论 -
QML播放条控件
该播放条控件能够根据设置的起始时间,提供播放、暂停、变速播放、前进、倒退、滑动条控制,状态显示等功能,控件如图:原创 2021-06-13 17:47:50 · 770 阅读 · 4 评论 -
Qt for WebAssembly程序使用腾讯云静态网站托管部署
使用腾讯云的静态网站托管服务,而Qt for WebAssembly程序不分前后端,因此很适用静态网站托管的方式,下面介绍怎么将生成程序使用静态网站托管原创 2021-05-20 19:36:03 · 588 阅读 · 0 评论 -
QML Map中使用Open Street Map(osm)离线地图(瓦片地图加载方式)
当使用QML Map显示地图时,有时候无法连接互联网,因此需要使用离线模式加载地图,加载离线地图瓦片时,需要为插件设置参数信息,其中name表示参数字段,value表示传入的值,此时将下载好的瓦片地图路径填入value中即可实现离线加载,离线瓦片地图下载工具目前我正在完善功能中,功能完善后会开源供大家参考使用,先放osm地图0-8层全球瓦片地图,直接解压缩就可以使用。原创 2021-05-06 19:26:27 · 6912 阅读 · 13 评论 -
QML 地图修改插件源码(一)解决Map使用Open Street Map(OSM)无法加载在线地图的解决办法
最近在使用Qml地图中发现,osm地图在线加载地图失败,通过查看osm插件源代码,当osm地图类型为StreetMap时,瓦片获取地址被重定向原创 2021-04-29 14:05:02 · 7254 阅读 · 2 评论 -
Qt日志输出重定向,在静态函数发送信号,日志输出至控件或文件
程序日志输出是程序调试中不可缺少的一部分,使用Qt中的QtMessageHandler qInstallMessageHandler(QtMessageHandler handler)就可以将日志信息输出至自己想要的位置。当有日志输出时,触发自定义的日志发送信号,此时接收该信号,即可将日志输出传递到任意位置,由于日志处理函数为静态函数,因此需要一个指针指向this,用于在静态函数中发送该信号原创 2021-04-26 13:00:19 · 946 阅读 · 0 评论 -
Qt 动态链接库监听USB热插拔,获取硬件VID,PID
Qt中对USB设备的插拔,可使用nativeEvent系统消息处理函数进行处理,但该函数仅支持当前窗口下的USB设备的监控,当需要在生成的动态链接库中监控系统消息事件,需要使用nativeEventFilter。在需要使用时,工程中使用qApp->installNativeEventFilter()的方式安装事件过滤器。对于USB的设备获取VID,PID,还需要对硬件GUID进行注册,由于是库中注册,需要传入界面对应的WinId原创 2021-03-24 12:58:18 · 1954 阅读 · 1 评论 -
Qt QString 转char* 、unsigned char*
QString str = "Hello!"; char* ch; QByteArray ba = str.toLatin1();//这里不能省 ch = ba.data();//QString转char* uchar* uch; uch = reinterpret_cast<uchar*>(ch);//QString unsigned char* 注意:不能图省事直接写成,会出现莫名其妙的错误,错误原因还未知ch = str.toL...原创 2021-03-22 18:59:32 · 2558 阅读 · 1 评论 -
Qt 使用MSVC编译时出现error: LNK2019: 无法解析的外部符号的错误解决办法
在使用Qt进行开发时,有时候使用MingW编译器编译,有时候使用MSVC编译,今天一个项目需要注册USB硬件至系统消息队列使用调用系统RegisterDeviceNotification函数,原本在MingW编译下没报错,而转到MSVC时提示 error: LNK2019: unresolved external symbol __imp__RegisterDeviceNotificationW@12 referenced in function,经过检查发现是缺少相应的库文件导致的,在pro中添加对应库原创 2021-03-19 18:26:38 · 2448 阅读 · 0 评论 -
Qt离线安装MSVC方法
安装好Qt后,有时候需要用到MSVC编译环境,如果电脑连接了互联网,直接下载安装器在线安装即可,那么需要为没有联网的电脑安装MSVC时,就需要采用下载离线安装包,离线安装的方法原创 2021-03-19 12:46:54 · 6164 阅读 · 0 评论 -
Qt 5.15.2添加msvc2019编译环境(不需要安装VS)
安装Qt5.15.2(只能在线安装),安装时候注意勾选MSVC 2019 64-bit支持,其他的根据自己需要勾选,点击下一步等待Qt安装完毕,此时QtCreator中Kits里Desktop Qt 5.15.2 MSVC2019 64bit编译环境前端有黄色感叹号,无法使用,需要安装MSVC2019支持安装 Visual C++ 库的运行时组件(64位)和 Visual Studio 2019生成工具(不需要下载完整VS)原创 2021-03-02 23:04:46 · 26099 阅读 · 10 评论 -
在QML中使用SQL Model
在C++中,Qt常用的的Sql数据库有QSqlTableModel,QSqlQueryModel等等,用于数据库处理很方便,那么如果需要在QML中显示SQL数据库数据,要怎么处理呢?C++中的SQL处理的Model模块不支持直接给QML使用,需要将其继承后添加数据绑定的部分功能后,再交由QML进行展示。原创 2021-01-15 16:04:57 · 1375 阅读 · 0 评论 -
QML日期选择控件
Qml中没有现成的日期时间选择控件,自己做了个,代码实现较为简单,没有过多需要介绍的,控件加载会自动获取当前日期,转动拨盘会根据当前年、月匹配当月天数,代码如下,直接复制到Qml中加载就可以使用了原创 2021-01-07 13:33:38 · 2439 阅读 · 3 评论 -
Qt for Android程序沉浸式启动页面(去除标题栏、去除黑屏、保留后台切换动画,添加Qt5.15方法)
最近研究Qml程序在安卓手机上运行,Qml的运行没啥问题,编译环境配置成功即可运行,安卓原生的一些东西就需要自己去琢磨了,比如程序启动后,默认会有一个短暂的黑屏以及默认标题栏,很影响用户体验,通过查阅相关资料后,记录下踩坑之路原创 2021-01-04 22:49:24 · 1686 阅读 · 1 评论 -
Qt pro中设置应用程序版本并在cpp中调用
.pro 增加VERSION = 1.0.1DEFINES += APP_VERSION=\\\"$$VERSION\\\"当需要当前版本号时,直接使用APP_VERSION宏的值即可。原创 2020-12-21 21:45:10 · 601 阅读 · 0 评论 -
Qt QML中chartview使用鼠标动态跟随数值(AreaSeries十字交叉定位)
之前写过关于在LineSeries中实现十字交叉定位数据,上一篇:鼠标动态跟随数值LineSeries(十字交叉定位),该方法需要鼠标放置在图表折线上时由Hovered信号返回位置点数据。但如果是AreaSeries时,使用该方法返回的则是面积图内部点的位置,无法实现上图中的效果,因此使用MouseArea实现,原创 2020-12-01 22:14:52 · 3638 阅读 · 0 评论 -
QML在ChartView中使用Qt.createComponent动态创建图表
有时候项目需要自定义Series时,就需要使用Qt.createComponent来创建,使用该方法创建的Series通过属性横纵坐标(axisX、axisY)或方位距离坐标(axisAngular、axisRadial),动态创建的Series不会显示因为无法匹配坐标,应该使用ChartView中的setAxisX、setAxisY来匹配Series的坐标。原创 2020-12-01 22:08:12 · 836 阅读 · 0 评论 -
向QML中传递C++中自定义的数据类型数组List<T>
而我们自定义的数据类型数列肯定无法直接传递,因此只能使用QVariantList进行传递,首先我们创建自定义数据类型PointDataF,该数据类型需要满足以下几个条件:有一个默认的公有构造函数有一个公有的拷贝构造函数有一个公有的折构函数并在头文件总使用Q_DECLARE_METATYPE(PointData)宏声明,这样的自定义数据类型数据值就可以保存在QVariant对象中了原创 2020-11-26 17:08:44 · 2965 阅读 · 1 评论 -
给QML传递在C++中自定义数据类型(Class)的数据
在C++中,结构体/类均可用于自定义数据类型,也正是这些特性让我们的程序变得更加的灵活。但如果是在C++中定义了某一个数据类型Class,使用该数据类型进行计算后需要在QML中使用该数据类型时怎么办呢?有人可能想讲C++类注册到QML中去行不行?或者调用C++中暴露的函数获得返回值?原创 2020-11-26 12:46:20 · 4102 阅读 · 8 评论 -
Qt on Android SSL支持方法(解决无法连接网络报错qt.network.ssl: QSslSocket: cannot call unresolved function问题)
Qt安装软件包带有OpenSSL支持,但OpenSSL库不属于软件包的一部分。因此需要手动添加OpenSSL库文件。当开发环境为Android时,要么自己编译依赖的openSSL库(麻烦不想用),要么就直接调用官方给的库android_openssl原创 2020-11-11 18:40:40 · 2991 阅读 · 7 评论 -
Qt重写nativeEvent监测光驱插入自动读取光盘内容并将内容发送至FTP
有时候我们需要监控计算机外接设备的接入,比如U盘、CD、DVD等,那么有没有办法是当有U盘或者光驱开始运作后,程序自动将外接设备中的所有内容复制出来,甚至传到另外一台计算机中去呢?下面介绍如何通过重写bool QWidget::nativeEvent(const QByteArray &eventType, void *message, long *result)来来处理系统的消息队列实现。(该方法不要用来干坏事哦!!!)原创 2020-11-06 17:36:58 · 981 阅读 · 1 评论 -
Qt读取本地编码为ANSI的json文件,并转为QJsonDocument
Qt 中提供了处理JSON数据类型的类,而处理JSON数据的基础就是将数据转换为可供Qt处理的数据类型,当我们读取的.json文件编码格式为ANSI时,使用QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *error = nullptr)进行转换时,就会出现转换失败的情况,因为QJsonDocument::fromJson()转换的二进制码流数据需要采用UTF-8编码,而Qt获取的JSON的编码格式不是UTF-8时,就会出现原创 2020-09-18 18:11:48 · 867 阅读 · 0 评论 -
Qt使用钩子后台监控键盘并在界面中响应
当我们的Qt程序需要在后台监听键盘的操作或者屏蔽键盘的操作时,就需要用到系统的API,因此用到Windows钩子,下面简单介绍下使用钩子监控键盘按键,原理较简单,代码上我都注释了,比较容易看懂原创 2020-09-16 20:08:36 · 5054 阅读 · 5 评论 -
QML中chart图表曲线鼠标点击拖拽移动方法
有时在QML开发中需要在chart图表中进行放大缩小,拖拽图表曲线进行查看,ChartView中提供了四种移动图表曲线的方法,四种方法移动的单位均为像素,因此如果需要进行鼠标拖拽,需要进一步进行坐标转化原创 2020-07-23 13:24:20 · 2578 阅读 · 0 评论 -
QML中使用 VLC-Qt 播放网络视频流(附实例)
VLC-Qt库:一个在libVLC基础上结合了Qt框架的开源库。它提供了媒体播放的视频、音频处理控制的核心类,并提供基于QWidget和QML的GUI框架。QWidget中使用VLC方法见我博文:https://blog.csdn.net/zjgo007/article/details/106353952此文介绍在QML中使用VLC播放网络流视频原创 2020-07-23 13:05:51 · 4809 阅读 · 21 评论 -
使用Qt备份微信小程序腾讯云数据库到本地(databaseMigrateExport和databaseMigrateQueryInfo)
云数据库中的数据我们可以使用小程序开发者工具中的控制台进行操作,但必须要安装有开发者工具且操作用户微信被授权登录才可以进行管理维护。因此我使用Qt制作PC端应用程序,通过HTTP API调用的方式管理维护后台数据,这里介绍对云数据库中集合进行备份到本地的功能实现。原创 2020-06-22 13:50:52 · 1993 阅读 · 6 评论 -
Qt/QML作品展示:在线地图规划
自己做的地图规划软件开源啦!在线加载地图,支持输入经纬度,点击地图获取地理位置,根据位置添加覆盖图,支持地图测距,中心点保存等功能,方便布局规划,适合电商网点布局,覆盖中心规划等场景需求!原创 2020-07-06 23:15:49 · 2552 阅读 · 20 评论 -
Qt 连接管理微信小程序云数据库一(获取微信后台接口调用凭据ACCESS_TOKEN)
最近做了一个微信小程序,使用微信小程序云作为后台数据服务,现开发PC管理员端,记录下开发过程。腾讯微信小程序开发文档中对获取小程序全局唯一后台接口调用凭据(access_token)的描述为请求地址GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&s...原创 2020-02-29 20:33:03 · 2183 阅读 · 0 评论 -
Qt 连接管理微信小程序云数据库二(查询微信小程序云数据库中JSON数据)
腾讯微信小程序开发文档中对数据库查询记录描述为:请求地址POST https://api.weixin.qq.com/tcb/databasequery?access_token=ACCESS_TOKEN请求参数属性 类型 默认值 必填 说明 access_token string 是 接口调用凭证 env st...原创 2020-02-29 21:24:23 · 1025 阅读 · 0 评论 -
Qt 连接管理微信小程序云数据库三(获取微信用户头像信息并在QWidget中显示)
这里主要介绍如何在QLabel中显示URL头像(如果使用QML开发,直接在Image控件的source属性中添加URL即可)实现思路为使用QNetworkAccessManager从头像URL获取数据并使用QPixmap存储图片数据,获取数据后发送信号传输图片信息原创 2020-03-04 20:23:48 · 1063 阅读 · 0 评论 -
Qt 使用自定义的数据类型作为QMap的Key(Class)
自定义数据类型时,为了让自定义数据能作为键值放入QMap<key,Value>中,因此对自定义的数据类型PointData使用宏Q_DECLARE_METATYPE,并对运算符进行重载以达到被QMap键值规则的目的。原创 2020-03-06 19:32:57 · 3287 阅读 · 0 评论 -
Qt将Json数据中的Date转换为QDateTime
最近项目需要从服务器中获取Json数据并在QWidget中显示,数字,文本都没问题,突然到了获取Date数据,使用qDebug()打印出数据类型时,懵逼了第一反应:这是个啥?手机号?哈哈。再一看,嗯有点眼熟,好像是根据什么1970年的毫秒偏移量?百度之:(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量为标准的,如1970-1-10 2...原创 2020-03-09 22:08:03 · 918 阅读 · 0 评论 -
Qt QML与QWidget联合使用管理服务器中商品信息
对服务器数据进行管理,数据处理使用QWidget,QNetworkAccessManager处理,而商品信息模块想实现仿移动端效果(与移动端效果一致),因此使用QQuickWidget加载QML实现。原创 2020-03-16 22:50:40 · 374 阅读 · 0 评论