QT
文章平均质量分 53
ihmhm12345
这个作者很懒,什么都没留下…
展开
-
2024-04-02 在使用QtRemoteObject 过程中遇到的问题记录
QtRO原创 2024-04-02 10:04:35 · 955 阅读 · 1 评论 -
2023-07-10 cmake管理的项目中使用vcpkg管理第三方库
从Github上克隆Vcpkg仓库然后执行安装命令即可:安装自己需要的第三方库。原创 2023-07-10 19:04:43 · 680 阅读 · 0 评论 -
2023-06-09 QML获取一个属性的类型
在qml编程中,某些情况可能会需要知道一个属性的类型,比如下代码这样创建出的组件,不同组件会有不用应用方式,在使用之前就必须要判断它的类型,上述代码使用了instanceof来判断类型。原创 2023-06-09 09:15:24 · 291 阅读 · 0 评论 -
2023-3-13 经纬度距离计算公式
在网上找了好久才找到正确的经纬度距离计算公式,而且是较高精度的计算。原创 2023-03-13 23:43:28 · 408 阅读 · 1 评论 -
2023-03-07 qDebug() 打印输出的内存保存到变量小技巧
qDebug 输出到变量。用的时候不多,如需要记录数据内存地址是比较有用。原创 2023-03-07 11:39:22 · 350 阅读 · 0 评论 -
2023-03-01 qml中的Image读取内存图片
需要重写QQuickImageProvider。原创 2023-03-01 14:28:18 · 385 阅读 · 0 评论 -
2022-10-19 如何在Qt Creator 里快速查看Qt源码
看我的这两个配置,一个是只检索cpp;h之类的源文件,另一个是只查看qml源文件。设置完了后,需要刷新一次,不然要等一小时后才会生效。需保证本机有Qt源码,再使用以下设置。1.查看cpp 源代码。2. 查看qml源码。原创 2022-10-19 15:42:05 · 4601 阅读 · 0 评论 -
2022-10-10 Qt自定义Model时遇到的小坑
自定义Qt的模型,如下代码结果在UI端调用时出现问题了每个模型会多创建一个Item,也就是说本来模型里有10个数据,但Repeater会打印20条数据。原创 2022-10-10 15:47:40 · 253 阅读 · 0 评论 -
2022-09-13 使用QML实现文字雨
前两天看到有人拿js做了一个文字雨特效,使用的是 Canvas,QML也一样可以用它来实现。原创 2022-09-13 09:44:09 · 367 阅读 · 0 评论 -
2022-06-19 Qt 多线程
Qt中线程的学习记录Qt线程方式:示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。都有类似的功能集Qt提供线程池基本经验法则在多线程环境中,线程安全的函数可以实现数据共享,需不需要单独考虑数据同步可重入函数支持多个线程同时结其进行调用,需无需考虑外部数据同步所有线程安全的函数都是可重入的,但反之不一定成立.继承QTread 和movetothread这两种线程的方式,太常见了,网络上资料也多的很,这里就不详细描述,看官方文档或者网络上一查即可...原创 2022-06-19 18:12:55 · 687 阅读 · 0 评论 -
2022-06-15 QSettings在项目工程中的应用
QSetting 最简单的用法就是但这样会造成在项目中会到处使用到iniPath其实文档里有说到一点,只要程序设置了程序名,组织名,那在工程任意位置调用QSetting原创 2022-06-15 17:15:16 · 195 阅读 · 0 评论 -
2022-06-14 QThread CPU压力测试
这两天突然拿到一个小设备,想没测试一下设备的cpu散热表现和性能可以拿现有的CPU压力测试来测试,但因为这小设备需要运行我们自已的软件,而且想知道CPU在高压下对我们自己的软件有没有什么影响,所以现成的CPU压力测试工具并不合适,怎么弄呢,我们可以在自己的软件里加一点测试的代码...原创 2022-06-14 16:13:29 · 677 阅读 · 0 评论 -
2022-05-24 QRemoteObject在CMake项目遇到的问题
文章目录前言问题解决方法总结前言Qt Remote Objects 是Qt官方推出的一个用于进程间通信(IPC)的模块,而且支持网络通讯。详细用法网络上很多,Qt官方手册也讲的很清楚,要学习用的话强烈建议去看官方手册,看手册完全可以搞明白。问题目前我这里还是使用的qt5.15.2版本,而且项目管理已由qmake转为cmake,但在cmake中遇到无法生成rep_***_source.h 的情况,下面记录问题产生的过程和解决方法。解决方法以下以commoninterface.rep 文件为例原创 2022-05-24 14:30:41 · 458 阅读 · 0 评论 -
2022-05-15 Qt QMdnsEngine 使用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、下载QMdnsEngine二、使用步骤1.Provider 服务端的使用2.Browser 浏览端的使用3. 运行测试前言在开发中,可能会遇到需要寻找局域网可用主机的需求,或以搜索一下zeroconf关键字,做这一块的项目不多,但大多都需要用苹果的打印服务,而且在各个系统平台都没有一个统一的工具。当然也可以自己根据协议写一个,其实就是局域网内广播,本着有现成资源就用的原则,最后发现了 QMdnsEngine ,经.原创 2022-05-15 22:34:54 · 628 阅读 · 0 评论 -
2022-04-06 Qt UDP TCP 在线程下的一种写法
文章目录前言一、QTcpSocket二、QUdpSocket总结前言QTcpSocket QUdpSocket 在多线程里的其中一种方式代码分享说明一点:QTcpSocket QUdpSocket 都是基于 QAbstractSocket,都是异步调用,绝大多数据情况下是不需要使用多线程的,不会阻塞UI线程。看官方说明就得知,在线程中使用waitFor**系列的阻塞函数是最简单的通信方式,但Qt官方有个警告:注意:此函数在Windows上可能随机失败。如果您的软件要在Windows上运行,原创 2022-04-06 17:31:18 · 2575 阅读 · 0 评论 -
2022-05-20 Qt 编译时所依赖文件自动拷贝方案
文章目录前言一、QMAKE_POST_LINK二、利用qtcreatordata.pri三、使用cmake语法总结前言在qt 程序开发的时候,经常会需要在编译的同时将非Qt库放至输出目录,以减少手动复制文件的操作一、QMAKE_POST_LINK使用 QMAKE_POST_LINK 进行复制QMAKE_POST_LINK += $$escape_expand(\\n) $$QMAKE_COPY \"SRC_DIR" \"DST_DIR\"使用放入pro文件或者pri文件中就可以了,但这个原创 2022-01-23 22:22:43 · 3411 阅读 · 0 评论 -
2022-01-14 版本号比较方法
文章目录前言内容前言在软件安装时,可能经常需要依赖其它软件,这时候会判断其它软件的版本号,判断版本号就成了个问题,一般版本就都是xx.xx.xx之类的。怎么判断呢,在Qt的版本判断里有个很好的案例内容看Qt代码main.cpp里第一名代码#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);#endif再去看下 QT_VE原创 2022-01-14 23:10:21 · 267 阅读 · 0 评论 -
2021-11-25 QML FileDialog 报错
目前在win10 Qt5.15.0 msvc2019-64 环境下,使用qml 的FileDialog 会报错 FileDialog{ id:exportDialog folder: shortcuts.home visible: false nameFilters: ["Tile Sets (*.map)"] onAccepted: console.log(fileUrl) }报错内容:warn原创 2021-11-25 10:14:11 · 1422 阅读 · 0 评论 -
2021-10-27 Qt QString arg() 使用过程遇到的问题
问题描述:有这样一段代码 QString s = QString("SELECT hash, type, x, y, zoom FROM TilesDownload WHERE setID = %1 AND state " "= 0 LIMIT %2") .arg(_task->setID(), _task->count()); LOG_DEBUG() <&原创 2021-10-27 17:19:52 · 654 阅读 · 0 评论 -
2021-10-16 使用coding进行持续集成Qt项目
文章目录前言一、准备工作二、思路二、使用步骤1.项目pro文件中需包含以下代码2. 在项目文件中添加几个bat文件3.新建构建节点4. 创建构建计划5. 开源示例代码总结前言对于一个Qt开发者来说,也想有一套适合自己的持续集成方案,查了很多资料后,发现有几种实现途径:在github上托管代码,使用action进行持续集成,这种方案应该是最简单的,有各种教程,也有很多现成的模板,拿来就可以用。自建git服务器,同是搭配jenkins来使用,可能很多小伙伴都是使用此方案,也这应该是许多公司常用的方案原创 2021-10-16 17:12:29 · 1111 阅读 · 0 评论 -
2021-09-22 QML 实时预览
在学习qml过程中,可能大家都希望能有实时预览效果,在网上找了找,找到个解决方案,原理就是使用 QFileSystemWatcher 实时监控本地文件,一旦文件有变化,利用Qml 中的 Loader 加载qml文件注意main.cpp中必须要设置本地绝对路径engine.hotLoad("E:/QTCloud/QmlLearn/LivePreview/qml/main.qml");左侧文件列表使用的是QFileSystemModel 这个qt官方有案例,本地文件增删时,列表也随之增删其中qml 源码原创 2021-09-22 15:23:09 · 1554 阅读 · 2 评论 -
2021-08-23 自定义QWidget提升到主窗口后,qss设置不起作用
自定义QWidget后,在Design 里提升到窗口后,qss 式样不生效问题https://doc.qt.io/qt-5/stylesheet-reference.html自定义的QWidget ,需要添加以上代码…原创 2021-08-23 10:30:48 · 645 阅读 · 0 评论 -
2021-07-01 Qt Location开发系列教程 (一)
文章目录前言一、为什么要使用QtLocation二、参考资料1.QGC:[http://qgroundcontrol.com/](http://qgroundcontrol.com/) 源码:[https://github.com/mavlink/qgroundcontrol](https://github.com/mavlink/qgroundcontrol)2.github 上发现的高德地图插件:[https://github.com/SindenDev/amap](https://github...原创 2021-07-01 17:51:15 · 6357 阅读 · 9 评论 -
2021-07-02 Qt Location开发系列教程 (三)
系列文章目录2021-07-01 Qt Location开发系列教程 (一)2021-07-01 Qt Location开发系列教程 (二)文章目录系列文章目录前言一、绘制的几种方案二、使用步骤1.绘制圆(点) MapCircle2.绘制 多边形 MapPolygon3.绘制线 MapPolyline4. 绘制矩形 MapPolyline5. 多个图形的组合6. 抗锯齿遇到的坑总结前言本章讲在map上绘制图形一、绘制的几种方案使用Qt location 提供的绘制方法: MapPoly原创 2021-07-02 10:46:28 · 2489 阅读 · 0 评论 -
2021-07-01 Qt Location开发系列教程 (二)
系列文章目录Qt Location开发系列教程 (一)文章目录系列文章目录前言一、新建工程 Map02并选择插件二、切换图源1.先看Map的文档2.图源选择总结前言本文章介绍如何选择插件及选择插件里不同的地图类型一、新建工程 Map02并选择插件具体可参见上一篇文章map.qmlimport QtQuick 2.0import QtQuick.Window 2.14import QtLocation 5.6import QtPositioning 5.6Window {原创 2021-07-01 18:39:30 · 1684 阅读 · 0 评论 -
Qt网络延时测试(QTcpSocket,QUdpSocket)
首先说明,测试不一定严谨,只是为了记录测试过程为了能有对比性,这里采用了asio1.18.1作为服务端,分别使用qtcpsocket和asio进行测试测试在本机测试 127.0.0.1一.测试tcp创建asio tcp服务器端,接到数据后立刻返回到发送端创建asio tcp客户端,发送数据,打印接收数据和发送数据间的时间差(微秒级)创建qtcpsocket 客户端,使用信号槽方式接收数据,发送数据,打印接收数据与发送数据间的时间差(微秒级)结果如下asio tcp client:qtc原创 2021-01-06 10:10:01 · 3256 阅读 · 0 评论 -
记录Qt 中文乱码解决
以下提供几个解决Qt在msvc中乱码的方式 qDebug() << QString::fromLocal8Bit("这是一个中文测试"); qDebug() << QStringLiteral("这是一个中文测试2"); qDebug() << QString::fromWCharArray(L"这是一个中文测试3"); const char *newParameter = u8"这是一个中文测试5"; qDebug() <&原创 2020-12-04 12:01:29 · 230 阅读 · 0 评论 -
Qt qDebug 可变长参数
qDebug() 可变长参数的使用上代码:#ifndef XLOG_H#define XLOG_H#include <stdio.h>#include <QDebug>#define XLOGD(format, ...) \ {原创 2020-06-15 17:31:05 · 1290 阅读 · 0 评论 -
Qt qmake 条件判断的坑
Qt qmake中可以使用条件判断来加载不同项,如:DEFINES += FFMPEG_4_2_2contains(DEFINES, FFMPEG_4_0_2){ message("ffmpeg4.0.2 64bit")}contains(DEFINES, FFMPEG_4_2_2){ message("ffmpeg4.2.2 64bit")}#可正常判断但contains 的括号如果另起一行,则不能正常打印。如DEFINES += FFMPEG_4_2_2contains(DE原创 2020-05-12 18:28:58 · 1684 阅读 · 0 评论 -
qobject_cast(QObject::sender()) 使用
1.qobject_cast最近在看一份开源项目时看到有qobject_cast的用法,经查阅学习后,记录文档部分资料来自 安全的转换方式——qobject_cast2.用法函数原型:T qobject_cast ( QObject * object )本方法返回object向下的转型T,如果转型不成功则返回0,如果传入的object本身就是0则返回0。在使用时有两个限制:1、T...原创 2020-01-13 22:28:36 · 991 阅读 · 0 评论 -
Qt官方案例map知识点分析
此案例实际是在讲QtConcurrent的使用方法,但里面也有许多知识点#include <QImage>#include <QList>#include <QThread>#include <QDebug>#include <QGuiApplication>#include <qtconcurrentmap.h>...原创 2020-01-03 10:01:03 · 438 阅读 · 0 评论 -
Qt 信号槽使用lambda 注意问题
Qt 信号槽使用lambda 需注意问题Qt5支持lambda方便太多,写信号槽时可以省略槽函数,简化部分代码,但这里需注意一下线程问题。使用QObject::connect(button, &QPushButton::clicked, someFunction);即:connect(sender,signal,[=](){…});这种方式可能大家使用的比较常见,但是请注意,la...原创 2019-12-27 17:01:26 · 976 阅读 · 1 评论 -
Qt QSetting 读写自定义结构
Qt 中用Setting写ini文件用以保存软件配置信息是个很方便的信息,一般读写单个值,都很简单,到处都可以找到资料,但对于自定义的结构体如何使用QSetting写入ini和读出,资料较少,下面是我整理且测试成功的方法.struct myStruct{ double errorUpper; double warnUpper; double warnLower; ...原创 2019-12-02 17:19:47 · 2022 阅读 · 2 评论 -
Qt 5.12.6 在线安装(MSVC cdb调试看源码)
Qt 5.12.6版本 在线安装缘由下载Qt在线安装工具说明:缘由因在windows上使用Qt,有时候想要跟踪查看Qt源码,进一步了解Qt…Windows上编译使用的是MSVC编译器,安装cdb后,发现无法进入Qt源码,多次查找资料后,说是在5.12版本后,需使用在线安装,安装以下是在线安装过程中注意的问题.下载Qt在线安装工具下载Qt在线安装工具qt-unified-windows...原创 2019-11-27 14:41:33 · 1916 阅读 · 0 评论 -
Qt:tabWidget 的Tab自动拉宽
//设置tabWidget 的Tab自动拉宽 ui->tabWidget->setStyleSheet(QString("QTabBar::tab{width:%1}QTabBar::tab{height:60}").arg(ui->tabWidget->width()/ui->tabWidget->count()));说明:使用StyleShee...原创 2019-11-15 18:35:52 · 1455 阅读 · 2 评论 -
QT 信号与槽效率测试
一直很好奇Qt信号槽的速度问题,简单测试了一下,先上代码:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include "CGetCPUClockFrequency.h"namespace Ui {class MainWindow;}class MainWin...原创 2019-09-10 10:34:24 · 4025 阅读 · 0 评论 -
QT 16进制转10进制负数
问题如下QString str(“FFFFFFF4”)转int类型 正常情况下大家可能都会使用str.toInt(nullptr,16)来进行转换,但这种情况只能转换int类型,且是正值才可以,也就是0到0x7FFFFFFF,超过这个范围会转换失败下面提供两种在QT下的解决方式方式1:利用QByteArray 再进行强转 QString str("FFFFFFF4"); QB...原创 2019-08-28 20:17:39 · 5784 阅读 · 0 评论 -
QtableView 委托的使用 setItemDelegateForColumn()
QtableView 委托的使用 setItemDelegateForColumn()从数据库中读取数据,显示到tabview,但存在个问题,数据库的有两列数据为double数据,直接显示到tableview上后,全精度不完整,以下从设置委托的方式来解决.注意设置委托的方式,在找资料的过程中看到的都以如下使用方式:doubleDelegate double_delegate;ui->...原创 2019-08-22 01:26:45 · 13596 阅读 · 1 评论