- 博客(101)
- 资源 (25)
- 收藏
- 关注
原创 QML自定义ComboBox组件,支持动态筛选
QtQuick.Controls提供了ComboBox组件,该组件能够满足日常的下拉选择框的需求,但当需要用户在ComboBox中通过输入关键字进行自动匹配时,原生的组件虽然提供了editable属性用于输入关键字,但是匹配内容不弹出下拉框,无法动态筛选。
2024-02-01 15:48:36
1734
原创 QML动态创建的组件添加自定义属性
当使用Qt.createComponent()时,我们可以在组件qml组件文件里添加属性值,但是如果该qml组件被复用到很多地方,我们又不想在组件文件中添加很多自定义属性时,可以在该组件createObject()后对组件实例单独添加属性。
2024-01-18 09:52:01
1144
原创 使用Qt/C++实现WGS84、高德GCJ-02、百度BD-09坐标系间相互转化
将不同坐标系间的转换封装到一个GeoTranslate类中,该类转换函数不仅支持Qt/C++调用,同时可在QML中直接调用,配合上QML/Map很方便,我将该类做了个Demo,方便使用者使用
2023-06-29 20:39:56
2457
1
原创 QML无边框最大化窗口时遮住了任务栏,程序默认置顶的问题
在QML窗口使用无边框,并且默认程序最大化显示后,此时程序显示默认自动变成了全屏显示,程序自动遮挡住了系统任务栏。当使用多屏幕显示时,切换不同程序,程序的界面显示错误,使用录屏软件录屏无效等莫名其妙的错误
2023-04-20 13:52:10
1169
原创 QML地图绘制虚线
QML提供了MapPolyline用于在地图上绘制线段,该线段是实线,因此我使用Canvas自定义绘制的方式在地图上绘制线段, 鼠标在地图上点击后,在点击位置添加图标 ,当有多个图标被添加到地图上后,计算各个图标间的距离,并创建一个新的虚线线段组件,连接两个图标点,显示距离数值。
2023-04-19 17:18:41
2053
原创 QML地图Map中使用QPainterPath,并显示任意点经纬度位置
QML地图Map中提供了供绘制图形的组件,例如MapPolyline,MapCircle等,但是这些组件在绘制复杂轨迹时就显得功能不够全面,因此我们将QPainterPath在Map中进行使用并进行绘制,并使用C++和Qml中的函数进行相互调用计算获取点屏幕坐标和经纬度坐标。例子中使用了QPainterPath的QPainterPath::pointAtPercent获取绘制的轨迹全过程中的各个位置的经纬度。
2022-11-17 21:49:10
3627
原创 QML实现双屏显示
QML程序中需要分别在主屏幕和分屏幕上显示不同的界面内容,但又为了不同界面间能够进行数据交互,因此使用如下方法实现双屏显示,即由主窗口生成第二个窗口,将该窗口移动到第二个屏幕上,实现方法很简单.........
2022-08-25 20:17:55
2682
1
原创 Qt使用QQuaternion对空间矢量QVector3D进行旋转
空间中的QVector3D既可以代表空间中的点位置,也可以表示空间矢量。为什么要对空间矢量进行旋转呢,比如有一个空间矢量在空间中代表了镜头前进的方向(即第一人称模式),初始时该矢量指向正北方向QVector3D(0,0,1),在镜头前进过程中,镜头旋转了r度,此时镜头前进的的矢量就需要相应的旋转r度,Qt中提供了QQuaternion用于三维空间中的矢量旋转
2022-04-01 14:15:56
6412
原创 QML 地图修改插件源码(五),Map添加自定义地图类型,并动态修改地图类型
QML的地图Map中提供了属性activeMapType : MapType用于设置当前地图的类型,以OSM地图插件为例,OSM地图提供了多种地图类型,下面介绍如何修改OSM插件的源码添加需要的地图类型,并在Map动态的更换地图类型
2022-03-29 21:30:12
3125
2
原创 QML 可拖拽边框和顶点调整大小组件(新增对主窗口支持)
QML项目开发过程中,有时候需要对控件大小和位置‘进行人为调整,因此设计该组件。该组件鼠标置于边框和顶点位置时鼠标样式对应改变,拖动边框可修改该方向组件大小,拖动顶点可修改组件处横纵向组件大小。同时新增了对主窗体的拖拽支持。
2022-03-14 13:19:30
4994
4
原创 使用QQuaternion对Qt Data Visualization中模型进行旋转
在Data Visualization中,三维显示的OBJ需要旋转时使用rotation属性,但是该属性传入的值是一个四元数QQuaternion
2022-03-10 12:34:50
1403
原创 QML 地图可拖拽位置标签组件
在地图上显示位置信息时,有时候需要同时显示该位置的详细信息。该组件可在地图上显示一个连接到地图地理位置的标签框,该标签框可点击进行拖拽。在地理位置改变、地图缩放、地图平移时,该标签框的相对位置保持不变。
2022-03-01 13:11:55
1314
原创 Qt Quick 3D系列(五):三维模型展示示例
在该示例中简单的实现了鼠标控制三维模型位置和缩放,自定义背景图片,模型动画等,感兴趣的或者刚刚接触Qt Quick 3D开发的可以下载了看看。
2022-02-16 14:55:10
9874
8
原创 Qt Quick 3D系列(四):为三维模型添加动画效果
Qt Quick 3D旨在让那些熟悉QML开发的人能够使用非常少的学习成本实现3D开发,因此对于三维模型动画没有类似与Qt 3D中有个专门的Qt3DAnimation来控制动画效果,而是直接使用QML中的Animation对三维模型中属性进行控制,是不是很赞,下面介绍如何使用NumberAnimation控制摄像机自动旋转。
2022-02-16 14:31:31
2959
原创 Qt Quick 3D系列(三):设置三维模型的金属光泽材质
我需要设置为金属材质时,设置该Model的materials为PrincipledMaterial,其中baseColor:材质的基础色;metalness:金属质感程度;roughness:模型表面反射光线的强度。
2022-02-16 14:00:46
1325
原创 Qt Quick 3D系列(二):鼠标控制3D模型旋转缩放
显示了3D模型后如何使用鼠标进行旋转呢?在Qt 3D中提供了OrbitCameraController用于控制相机的轨道(个人觉得不好用),在Qt Quick 3D中,没有直接控制相机的函数,但是直接使用MouseArear对节点Node进行控制会更加的灵活和方便。
2022-02-14 13:26:02
7066
2
原创 Qt Quick 3D系列(一):加载3d模型
如果我们想在QML中使用3D且你之前没有三维程序开发的基础,使用Qt Quick 3D是个不错的选择,下面我介绍如何使用Qt Quick 3D加载3d模型。
2022-02-14 13:20:13
15937
9
原创 Qt Quick 3D中将3D场景(如.obj)转换为.mesh
Qt 5.15以后提供了Qt Quick 3D的新模块,该模块可使用可视化的方式即可进行3D模型的显示,并且相较于Qt 3D来说,该模块的API更为高级,使用者不需要自己设计底层的细节。该模块中三维模型的显示使用了.mesh格式,接下来介绍如何将3D场景转换为.mesh和相关QML组件。
2022-02-11 13:12:06
7296
1
原创 QML 地图修改插件源码(四),Map根据目录作为索引加载地图瓦片
对地图瓦片目录进行分层,按照存放路径作为索引,即每个地图层的瓦片存放入一个文件夹中,插件根据地图类型和缩放比例进行查找,这样能大大的提高效率。该示例中只是按照地图层数分文件夹,如果更追求效率可按照我的方法在每一个层内再经行细分。示例中的mapType为自定义的地图类型(链接),如不需要在插件中设置地图类型,删除示例中的mapType相关部分即可
2022-01-27 12:57:08
2518
原创 QML 地图修改插件源码(三),Map在Plugin中设置加载地图类型
常用的地图种类分为交通图,地形图,卫星图等等,在QML的Map(以OSM地图为例)中提供activeMapType属性用于读取当前显示的地图类型(注意:该属性为只读属性,不能用于赋值),QML中地图的加载寻找根据瓦片的文件名进行查找,例如名为"osm_100-l-5-2-2-3.png"的瓦片,其中5代表了该地图的类型
2022-01-27 12:47:06
2818
1
原创 Qt QML 自绘GPS方位校北仪控件
该控件使用QQuickPaintedItem进行绘制后在QML中进行使用,相关部分参数已提供设置接口供QML中调用,如果该控件需要在QWidget中使用,将QQuickPaintedItem修改为QWidget即可。在Demo中演示了如何添加不同方位夹角,不同颜色的指针,并根据指针名称动态修改数据。控件提供的相关接口如下,如果有其他接口需求,可下方留言提供建议,本人不断完善。
2022-01-15 10:10:58
1255
7
原创 QML中使用QPen设置组件边框(以CandlestickSeries为例)
QML中提供了很多组件是由C++中绘制而注册到QML中使用的,这些组件采用QPen绘制组件边框,这样的组件均可使用返回QPen的方法设置边框样式。例如CandlestickSeries就提供了数据展示的蜡烛图,查看CandlestickSeries的文档,文档中未提供设置组件边框颜色样式的属性。由于该组件为QCandlestickSeries注册而来,因此查看QCandlestickSeries源码,发现注册有属性pen可以设置组件边框样式
2022-01-11 13:04:52
1196
原创 Qt Creator 无法编辑Qml界面,报错:“Qt Quick emulation layer crashed”
Qt Creator 无法编辑Qml界面,报错:“Qt Quick emulation layer crashed”
2022-01-05 12:39:37
2029
原创 QML地图自定义矢量路径图组件
在MapPolyline的基础上制作了MyMapVectorLine,该控件可自定义矢量标志图片样式,并根据存入数据自动计算标志方位朝向,组件颜色和标志可动态设置
2021-12-30 14:52:50
1925
4
原创 Qml中Date日期时间的值传递
在qml中需要对日期时间值进行传递,不能直接采用赋值传递的方式,否则仅仅只传递了Date的指针,并没有对数值内容进行复制
2021-12-27 19:05:42
3164
原创 Qml热力甜甜圈控件(嵌套饼图)附使用Demo
嵌套甜甜圈图,每个小圈内的切片具有相同角度,每个切片采用不同颜色(热力值)代表该切片处数值的大小,该图表适用于展示具有相同周期的重复数据的密度,应用于例如连续多日的24小时各时段数据密度等场景
2021-12-24 18:03:12
1034
原创 QML界面动画(一)
在地图上显示半透明控制栏,用户可自行控制控制栏弹出与隐藏,控件界面设计完后使用整体的缩放,缩放的锚点位置置于控件的左上角,对缩放数值添加动画即可。在地图上展示数据图表内容同时能显示地图内容,开始将图表框采用弹出置于地图之上,但是这样部分地图会被遮挡,因此改进为将地图平推的方式,即缩小地图组件的width的同时增加图表组件的width。实现方法是控件设置两个state,state切换时添加切换动画即可,这里不要对地图组件和图表组件分别添加动画,不然会先推地图后拉出
2021-12-20 19:17:16
1470
原创 QML 地图修改插件源码(二)添加新的功能,并编译成dll
QML中的地图模块提供了大量的功能函数供用户使用,使用起来也很顺手,但是如果想在已经提供了功能函数基础上自己新增功能,比如Map提供了添加/删除地图中组件的函数,此时我们想新增一个直接删除当前地图上所有已存在的MapItemView的函数时,就需要修改Map的源码,在源码中新增该函数,如需要修改其他模块的源码,方法类似
2021-12-17 13:05:26
1534
原创 QML 控件中修改ToolTip显示的位置
在QML控件中,如果需要显示提示框,通常使用ToolTip,但是默认提示框的位置总是不符合使用习惯,使用ToolTip.toolTip即可获得当前控件提示框的实例,直接对其设置即可
2021-12-15 17:45:20
2420
原创 QML 地图Map中加载动态路径,使用动画显示运动轨迹
在QML地图中可以显示位置,那么如果有路径的点需要动态的显示其运动轨迹,该如何实现呢?运动点迹可以使用MapItemView加载,使用箭头表示运动的指向,相邻两个位置处的矢量偏移角度可使用Map.azimuthTo()函数计算得到。但是加载的点迹是动态的,因此需要再给箭头它加上动态的效果,动态效果的实现我采用的是间隔显示法,即每个动画周期内根据自定义点间隔显示点,同时隐藏上一周期显示的点。
2021-12-09 13:59:58
4154
2
原创 Qt QML绘制热力图实现原理
由于需要在QML地图中使用,因此使用QQuickPaintedItem绘制,并注册至QML中使用使用QImage绘制渐变透明度图,以每个位置点中心绘制透明度渐变的圆,圆的半径就是热力图的衍射程度。这样同一个位置叠加的点越多,该位置的越不透明。假定所有点中重复度最高的位置(重复度为N)透明度为不透明,则每个衍射渐变圆的透明度就是255/N。得到的QImage图片每个像素点透明度则代表了该位置点的重复程度,将该图片上每个像素点透明度转为不同的颜色,绘制成的新图片就是热力图
2021-12-06 13:04:53
2399
原创 Qt QML地图上绘制热力图(Qt/QML组件)
Qt QML地图上绘制热力图(Qt/QML组件)QML中使用Map加载地图十分好用,但当需要在地图上可视化的展示区域位置数据的疏密程度时用热力图展示效果就会很好,如果需要在QWidget上绘制热力图,只需要将MapHeatImage继承由QQuickPaintedItem改为继承自QWidget即可使用
2021-12-02 22:36:55
2598
原创 LibXL获取Excel时间格式数据为小数,转换为时分秒
在使用LibXL读取Excel数据时,发现如果表格数据为时间格式,读取出来的是一串小于1的纯小数。经过测试发现,Excel中时间格式的存储就是按照纯小数格式存储的,这样便于用户的自定义时间样式。Excel中存储的纯小数代表了该时间在一天24H内的占比,因此程序获取到该纯小数后需要自行转换为时分秒
2021-10-25 19:10:39
1000
原创 QML Flickable 在鼠标位置处放大缩小
使用Flickable显示图片、自绘内容或者其他窗口控件时,需要对其内容进行放大缩小时,使用MouseArea修改Flickable的contentWidth即可,但此时缩放后的显示位置有偏移,解决方法为移动缩放内容位置,
2021-09-23 12:25:11
1223
原创 Qt QString(包含中文)和wchar_t*相互转化
需将QString字符串转换为wchar_t*,网上提供了很多转换方法,但经过测试,很多方法带有中文字符时转换就会出错,最终测试得出以下方法可行,不限中英文和字符长度:
2021-09-17 15:47:59
2632
原创 QML在Charts中动态修改Series(LineSeries, ScatterSeries, ,SplineSeries)的值
项目需要对Charts中的图表动态的修改Series中数据的值,通过查看帮助文档,发现QML Charts中关于XYSeries的方法的说明如下图,共7个方法,其中数据替换的方法replace只写了一种通过点的值进行替换的方法。
2021-09-13 22:40:06
2773
原创 QML Model中添加颜色属性时,“Unable to assign QJSValue to QColor“
当在QML中使用Model控制界面时,如果需要在Model中动态添加颜色属性用于控制界面控件颜色时,直接传入color会报错:Unable to assign QJSValue to Qcolor
2021-07-04 18:23:29
2107
原创 QML属性implicitWidth和implicitHeight介绍
对于类似于Image、Text等其中包含内容的控件,width、height只是设置了该控件的框架的宽度和高度,但其中的内容的长度和高度的大小的值是implicitWidth/implicitHeight。一个控件的width和height在控件初始化的时候便确定好了,而implicitWidth/implicitHeight是跟随着控件包含的内容的变化而变化的。
2021-06-21 20:34:13
4038
原创 Qt/QML离线地图瓦片下载工具(瓦片地图)
QML中加载离线瓦片地图时,就需要将瓦片地图下载到本地,并按照规定的瓦片命名方式进行命名。因此我制作了该瓦片地图下载工具,该工具可选择不同地图类型进行下载。
2021-06-13 19:28:11
8293
22
QML自定义ComboBox组件,支持动态筛选
2024-02-01
使用Qt编写的将WGS84、高德GCJ-02、百度BD-09不同坐标系间的转换Demo
2023-06-29
QML地图绘制虚线Demo
2023-04-19
QML地图Map中使用QPainterPath,并显示任意点经纬度位置
2022-12-09
QML 可拖拽边框和顶点调整大小组件(更新对系统主窗体的支持)
2022-03-14
QML 地图可拖拽位置标签组件
2022-03-01
Qt QML 自绘GPS方位校北仪控件
2022-01-15
SliderDemo.zip
2021-06-13
QML open street map 离线瓦片地图包osm.zip
2021-05-06
LogTest.rar
2021-04-26
QmlSqlQueryModel.zip
2021-01-15
DataTableView.qml
2021-01-15
TableView(Demo).rar
2021-01-15
Android OpenSSL support for Qt(android_openssl)
2020-11-11
SinPlot.rar
2020-08-03
VLC_QML.rar
2020-07-23
LocationMap(源码).rar
2020-07-06
VLC-Qt_1.1.0_win32_mingw.7z
2020-05-26
VLCTest.rar
2020-05-26
PolarTest.rar
2020-04-04
MoveWidget.rar
2020-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人