
Qt技术
文章平均质量分 68
Qt技术
利白
这个作者很懒,什么都没留下…
展开
-
Qt使用QButtonGroup多个按钮信号绑定同一个槽函数,执行不同业务逻辑
Qt使用QButtonGroup多个按钮信号绑定同一个槽函数,执行不同业务逻辑原创 2025-01-23 15:35:11 · 488 阅读 · 0 评论 -
qt-creator-10.0.2之后版本的jom.exe构建和编译速度慢下来了
2、本人一直用的是qt-creator-10.0.2版本,官网历史仓库可以下载安装包qt-creator-opensource-windows-x86_64-10.0.2.exe。我发现自从qt-creator-11.0.0以后的版本,jom.exe版本变了,导致源码构建和编译速度慢了,而且是慢得很多很多。jom.exe是Qt的多线程构建工具,用于加速编译过程。可以考虑拷贝10.0.2的jom文件夹覆盖到新版本的qt-creator。1、Qt的IDE一直在升级,qt-creator的新版本下载地址。原创 2024-09-15 16:19:35 · 821 阅读 · 0 评论 -
Qt进程通信,不推荐使用QSharedMemory和QLocalSocket,而是推荐ZMQ
ZeroMQ号称是“史上最快的消息队列”,基于c语言开发的,实时流处理sorm的task之间的通信就是用的zeroMQ。引用官方说法,ZMQ是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。一、据一位资深的网友说QLocalSocket有问题,共享内存QSharedMemory也有,比如存在多线程问题,不灵活,丢数据等问题都有,而且还占资源。服务器端可以首先启动,通过调用zmq_bind函数绑定到指定的地址,并开始监听连接。原创 2024-09-10 20:26:43 · 892 阅读 · 1 评论 -
Qt实现exe单例运行,只运行一次,qtsingleapplication
Qt如何控制一个exe程序只能执行一次?原创 2015-07-19 22:29:59 · 1158 阅读 · 0 评论 -
qt5.15.2在线安装选项不见了?怎么办?
那怎么安装qt5.15.2呢?看主界面的右手边,勾选【Archive】,然后再单击【Filter】。运行最新版本的安装包,默认是看不见qt5的版本了。于是,又出现Qt5.15.2了。先去官方网站下载安装包。原创 2024-09-04 19:04:51 · 2652 阅读 · 4 评论 -
Qt读写json文件
https://zhuanlan.zhihu.com/json-tutorialhttps://github.com/miloyip/json-tutorialhttps://github.com/Tencent/rapidjson原创 2018-12-16 17:48:32 · 562 阅读 · 1 评论 -
Qt如何读写局域网的共享文件夹,需要登录账户和密码
正常情况下,电脑2想要访问电脑1的共享文件夹,是需要输入电脑1的账户和密码的。net use \\ip\\ipc$ "密码" /user:"用户名"先假设电脑2访问电脑1的共享文件夹,不需要登录电脑1的账户和密码。注意:IP地址前面的斜杆的数量不同,前者2个斜杆,后者需要4个斜杆。有电脑1和电脑2,电脑1有共享文件夹,电脑2可以网络访问它。举例win10,先把电脑1的这个【新建文件夹】共享一下。C++访问一个带密码的共享文件夹的方法。电脑1有账户world,密码是1。Windows的IPC$共享学习。原创 2024-02-22 16:52:55 · 2214 阅读 · 0 评论 -
QImage打开分辨率大的图片会报错:QImageIOHandler: Rejecting image
所以QImage想正常打开一幅10000*10000的图片,需要预先设置QImageReader::setAllocationLimit(382);//我们的9344*7000的单通道图片就有62.3MB大小,而QImage是按照四通道来限制内存的,所以62.3MB*4=249.2MB。setAllocationLimit将分配限制设置为 mbLimit 兆字节。需要高于此限制的 QImage 内存分配的图像将被拒绝。3、我们来计算一下分辨率10000*10000的图片,需要分配多少内存。原创 2023-08-09 15:51:30 · 1737 阅读 · 0 评论 -
Qt6.5.x编译报错:error: C2872: “byte”: 不明确的符号
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\cstddef(28): note: 或 “std::byte”C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\rpcndr.h:192: error: C2872: “byte”: 不明确的符号。不能超过190个左右字符。原创 2023-06-27 11:48:42 · 2981 阅读 · 0 评论 -
Qt进制转换,16进制转long ABCD/CDAB
【代码】Qt进制转换,16进制转long ABCD/CDAB。原创 2023-02-06 16:32:24 · 1515 阅读 · 0 评论 -
VS+Qt的工程,拷贝到其它电脑,编译出错:fatal error C1083: 无法打开包括文件: “QWidget”
最后再打开属性对话框,重新粘贴文本“core;先【剪切】文本“core;serialport”,使得该选项为空;fatal error C1083: 无法打开包括文件: “QWidget”4、查看VS工程的命令行参数,检查Qt的头文件路径是否正确。1、修改VS工程的属性页,SDK版本选择为最新安装的版本。2、修改VS工程的Qt Installation的属性。3、重置VS工程的Qt Modules的参数。必须和本机电脑安装的版本对应得上。然后确定关闭该属性对话框;原创 2023-01-31 11:47:41 · 3327 阅读 · 2 评论 -
mysql8.x实践系列(2)Qt客户端怎么操作PostgreSql数据库?怎么保存和读取二进制图片?
还需要带上有关的动态库文件,它们可以在安装路径下找到,C:\Program Files\PostgreSQL\14\bin。2、用户自己写的qt操作PostgreSql的应用程序,发布时,除了需要数据库插件,(1)设计表,把二进制图片定义为bytea类型。1、Windows安装PostgreSql。安装时,去掉勾选pgadmin4。初始数据库postgres。用户名postgres。原创 2022-10-08 21:45:12 · 2482 阅读 · 0 评论 -
Qt5多线程/线程池技术集锦(2)如何在子线程更新ui窗口
这篇讲讲多线程里怎么更新窗口ui我们可以在线程函数里使用QMetaObject::invokeMethod来实现异步更新ui原创 2022-08-05 14:17:50 · 6744 阅读 · 0 评论 -
好教程推荐系列:收录常见的Qt面试题
去const属性用const_cast基本类型转换用static_cast多态类之间的类型转换用dynamic_cast不同类型的指针类型转换用reinterpret_cast。原创 2022-08-05 10:49:31 · 6301 阅读 · 0 评论 -
好教程推荐系列:转载收录6.5大侠写的部分Qt开发经验
原创链接:https://gitee.com/feiyangqingyun/qtkaifajingyan本人摘录一些比较关键的知识点:180.QSqlTableModel大大简化了对数据库表的显示、添加、删除、修改等,唯独对数据库分页操作有点绕弯。196.关于Qt延时的几种方法........................转载 2022-06-30 19:34:04 · 967 阅读 · 0 评论 -
解决OpenCV的imread/imwrite在Qt环境不支持中文路径的问题
默认写法是:QString m_strPathNameImageOrg;cv::Mat Image1 = cv::imread(m_strPathNameImageOrg.toStdString().c_str());但是这样写是不支持中文路径的。解决办法1,需要满足以下3个条件(1)源码修改为:cv::Mat Image1 = cv::imread(m_strPathNameImageOrg.toLocal8Bit().toStdString());(2)源文件添加:#pragma execution_c原创 2022-06-18 18:24:10 · 3906 阅读 · 4 评论 -
C2039:“clear“不是“QPainterPath“的成员
查看Qt源码,https://github.com/qt/qtbase/blob/v5.13.2/src/gui/painting/qpainterpath.cpp发现clear函数是Qt5.13版本开始新增的。那Qt 5.12.x版本想编译高版本写的源码,怎么办?把ItemPath.clear();替换为ItemPath = QPainterPath();..................原创 2022-06-16 12:59:40 · 1285 阅读 · 2 评论 -
QGraphicsItem鼠标精准拾取(pick/select)研究
在QT场景视图中,一个2D图形项是一个QGraphicsItem,我们可以通过继承来定义我们自己的图形项。主要有以下三个虚函数需要重点关注:1) 边界矩形(必须实现)virtual QRectF boundingRect() const = 0;2) 图形形状(可选实现),该函数返回图形项的实际形状路径,常用于碰撞检测、命中测试等等,默认实现返回boundingRect的矩形形状(具体的图形项的形状是任意变化的,默认的矩形形状显然不能正确表示图形的实际形状,所以建议重写该函数)。需要注意的是,形状的转载 2022-06-04 21:14:38 · 1371 阅读 · 0 评论 -
QGraphicsScene/QGraphicsView如何实现鼠标右键选中物体?
默认是鼠标左键按下,可以选择物体。那怎么实现右键按下也能选中物体?1、在QGraphicsScene继承类里实现class CadScene : public QGraphicsScene{protected: void mousePressEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;signals: void sigPopupMenu(void);}void CadScene::mousePres原创 2022-05-27 12:25:57 · 2733 阅读 · 0 评论 -
据说Qt的QSS性能很拉胯?加载效率很低?
最近网红6.5大师做了测试,得出结论:顺便和大家汇报个今天重大发现,qss在qt5.12.5版本前和之后,有重大速度变化,一样的qss文件,5.12.5以后速度性能下降十倍,比如5.14 5.15 6.1 6.3,qt6更糟糕,都是release。5.12.11以后也是这个速度性能差距就在 qApp->setStyleSheet(qss);界面越多,差距指数级增长但是换成5.7低版本溜得起飞还是painter好很多,怪不得UOS推荐而且强制painter禁用qs原创 2022-05-09 22:36:53 · 4375 阅读 · 2 评论 -
QImage 图像格式小结,QImage::Format
文章转载自:https://blog.51cto.com/tracey2076/539690嗯,这个QImage的问题研究好久了,有段时间没用,忘了,已经被两次问到了,突然有点解释不清楚,我汗颜,觉得有必要重新总结下了,不然无颜对自己了。图像的数据是以字节为单位保存的,每一行的字节数必须是4的整数倍,不足的补0。(因为我们使用的是32操作系统,因此数据是按照32位对齐的,所以每行的字节数必须是4的整数倍也就是说每行的数据位必须是32位的整数倍。)这里是按照我的理解的,貌似错了,修正一下,最近转载 2022-05-02 15:26:39 · 14350 阅读 · 3 评论 -
关于C++执行exe和QProcess start()方法的若干注意事项,例如路径有空格
1、摘录博客https://blog.csdn.net/zrfzrf/article/details/78840063https://blog.csdn.net/zrfzrf/article/details/78840063比如QProcess *p = new QProcess;p->start("d:\a b\test.exe");因为ab之间有空格, test.exe不会被调用.网上找了些办法, 比如用p->startDetached("d:\a b\test.ex原创 2022-01-13 20:10:21 · 4625 阅读 · 0 评论 -
收集的几篇关于Qt曲线光滑拟合(quadTo/cubicTo)的文章
以下文章非本人原创,仅仅收集分享:quadTo是二阶贝塞尔cubicTo是三界贝塞尔如何绘制经过QT中几个点的平滑曲线? - VoidCCRounded Corners Using Bezier Curves and QPainter | Toptalhttp://thrustvector.tumblr.com/post/149813700265/bezier-curve-airfoil-with-pythonQt 绘制平滑曲线 | 公孙二狗Qt 中实现任意阶贝塞尔曲原创 2021-11-15 17:09:52 · 3478 阅读 · 0 评论 -
LNK2019: 无法解析的外部符号 __imp_RegisterDeviceNotification
问题描述:dialog.obj:-1: error: LNK2019: 无法解析的外部符号 __imp_RegisterDeviceNotificationW,函数 "private: int __cdecl Dialog::DoRegisterDeviceInterface(void)" (?DoRegisterDeviceInterface@Dialog@@AEAAHXZ) 中引用了该符号D8.obj:-1: error: LNK2019: 无法解析的外部符号 __imp_wsprintfA,函原创 2021-08-24 13:18:42 · 729 阅读 · 1 评论 -
Qt/C++调用Windows画图板mspaint,打开指定路径的图片文件,从文件路径中提取目录名和文件名
一、先看完整的源码void DistortionCalibWidget::slotToolButtonMspaint(){ //C:\Windows\SysWOW64\mspaint.exe //C:\Windows\System32\mspaint.exe std::string strImage = m_strPathNameImageOrg.toStdString(); qDebug() << m_strPathNameImageOrg; .原创 2021-07-11 22:47:03 · 1059 阅读 · 1 评论 -
使用QtConcurrent::run创建线程,出现某个甚至某几个线程不运行的情况解决方法
在项目中遇到问题,建了一个类,创建6个子类对象,开了六个线程,读取录像文件播放,始终只有4个线程在运行。下面代码为网上找到的简单的问题示例出现这个问题的原因是当前的机器的线程池只支持8个线程而我测试自己项目程序的机器默认最大只支持4个线程;解决方式如下:工程文件添加QT+=concurrent不同硬件环境配置下的程序是有默认最大线程数的;QThreadPool::globalInstance()->maxThreadCount()可查看当前环境最大线程数,那么显...转载 2021-06-09 11:11:14 · 1907 阅读 · 0 评论 -
原创:使用Qt Creator作为Linux IDE,解决无法加载qt-xcb插件的问题
本篇主要讲解在CentOS桌面系统,安装Qt Creator。0、安装包下载https://download.qt.io/official_releases/qt/把文件qt-opensource-linux-x64-5.12.10.run下载并拷贝到/root/Downloads,不建议放在桌面的路径1、安装Qt,进入CentOS系统的终端,依次执行以下命令chmod +x qt-opensource-linux-x64-5.12.10.run./qt-opensource-li.原创 2021-05-05 22:33:25 · 3017 阅读 · 3 评论 -
Qt编译出错:无法打开文件“temp\obj\.obj”
Qt编译出错:无法打开文件“temp\obj\.obj”原因:*.pro文件写错了,多了一个"\"SOURCES += \ main.cpp \ mainwindow.cpp \ \ mainwindowprivate.cpp修改为SOURCES += \ main.cpp \ mainwindow.cpp \ mainwindowprivate.cpp...原创 2021-03-09 13:45:58 · 850 阅读 · 0 评论 -
关于前置声明:#include类和前置class类名的区别
今天看别人写的代码,用到了QTreeWidgetItem,这是QT自带的类,但是并没有#include<QTreeWidgetItem>而是在头文件里写了类的声明:然后用到这个类的函数接口:你看用到的都是指针!原来是因为当你在头文件声明成员变量或成员函数时,如果只需要用到某个类的指针而不需要用到类的对象,那么就可以直接只是声明一下这个类,不用include,这样可以...原创 2019-04-11 11:58:21 · 2739 阅读 · 0 评论 -
VS2019+Qt SDK环境搭建的若干注意事项
1、预处理器添加宏,_USE_MATH_DEFINES,可以使用M_PI,它是圆周率。2、uic3、moc4、多国语言原创 2021-02-26 16:33:14 · 685 阅读 · 0 评论 -
VS2019使用clang-format实现源代码格式化排版,解决“No Target Architecture”问题
之前写了姊妹篇《Qt Creator使用clang-format实现源代码格式化排版(Windows/macOS)》https://blog.csdn.net/libaineu2004/article/details/104985934今天写写VS2019这个IDE。原创 2021-01-17 23:26:17 · 10438 阅读 · 3 评论 -
两幅QImage怎么拼接?
QImage qimg3 = QImage(qimg1.width(), qimg1.height() * 2, QImage::Format_RGB888); QPainter p(&qimg3); p.drawPixmap(0, 0, qimg1.width(), qimg1.height(), QPixmap::fromImage(qimg1)); p.drawPixmap(0, qimg1.height(), qimg1.width(), qimg1.height(.原创 2021-01-14 21:55:14 · 2091 阅读 · 0 评论 -
Qt如何在Release编译下怎么调试?怎么生成pdb文件?
更改项目设置pro文件,在pro文件中加入以下代码:QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFOQMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO原创 2020-08-30 20:17:57 · 3279 阅读 · 2 评论 -
error: LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const * __cdecl
我从QObject继承了一个类:#ifndef MAINWINDOWPRIVATE_H#define MAINWINDOWPRIVATE_H#include "DockManager.h"class MainWindowPrivate : public QObject{ Q_OBJECTpublic: MainWindowPrivate(); virtual ~MainWindowPrivate();public: void initDockWidge原创 2020-08-25 10:32:43 · 9430 阅读 · 0 评论 -
QString格式化的几种用法:补零/进制转换/保留小数位等
1、QString格式化arg前面自动补0int seconds = m_calc.elapsed() / 1000;int hour = int(seconds / 3600);int min = int((seconds - hour * 3600) / 60);int sec = seconds % 60;//QString格式化arg前面自动补0QString str = QString("%1:%2:%3").arg(hour, 2, 10, QLatin1Char('0')).原创 2020-06-23 21:03:29 · 51663 阅读 · 2 评论 -
Qt实现撤销删除功能
Qt自带案例:F:\Qt\Qt5.12.8\Examples\Qt-5.12.8\widgets\tools\undoframeworkhttps://doc.qt.io/qt-5/qundocommand.html它山之石:Qt QUndoStack、QUndoCommand(实现撤回和回撤)https://www.cnblogs.com/ybqjymy/p/12836278.html原创 2020-06-22 17:06:29 · 2331 阅读 · 0 评论 -
如何有效禁止qDebug的输出?qDebug().nospace()和noquote()的作用是什么?
如何有效禁止qDebug的输出?qDebug().nospace()和noquote()的作用是什么?原创 2020-06-16 11:07:15 · 3054 阅读 · 0 评论 -
总结一下Qt内存泄漏检测与处理策略,并附个人写的C++单例类,用于内存自动释放
1、Qt中控件new之后需不需要delete的问题https://blog.csdn.net/Aidam_Bo/article/details/86303096* QT的父子对象机制是在 QWidget和QOject中实现的。当我们使用父对象来创建一个对象的时候 ,* 父对象会把这个对象添加到自己的子对象列表中。当这个父对象被删除的时候,它会遍历它的子对象类表并且删除每一个子对象,* 然后子对象们自己再删除它们自己的子对象,这样递归调用直到所有对象都被删除。* 这种父子对象机制会在...原创 2020-06-15 21:22:39 · 5780 阅读 · 0 评论 -
解决Qt问题:无法连接到进程内QML调试器
问题:解决办法:去掉下图所示的Enable QML的勾选原创 2020-05-18 11:06:36 · 7445 阅读 · 0 评论 -
Qt5.12.x怎么调试Qt的源码?
安装源码安装Qt的时候记得要勾选安装源码。配置QtCreator下载调试信息(*.pdb文件)x64 MSVC2017http://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5128/qt.qt5.5128.debug_info.win64_msvc2017_64/重点是下载5.12.8-0-202004051457qtbase-Windows-Windows_10-MSVC2017-..原创 2020-05-18 10:51:42 · 3530 阅读 · 2 评论