![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
QT编程学习
文章平均质量分 69
计算学习QT开发过程遇到的一些问题,搜集相关QT的资源和使用技巧。
雪域迷影
专业:计算机
爱好:服务端和客户端开发,桌面开发,全栈开发
兴趣:象棋、乒乓球、游泳、听音乐。
展开
-
PacketSender-用于发送/接收 TCP、UDP、SSL、HTTP 的网络实用程序
是一款开源的用于发送/接收 TCP、UDP、SSL、HTTP 的网络实用程序,作者为dannagle。使用Qt开发,并且跨平台,支持Windows、Linux、MacOS,本人亲自试过使用Qt5.14.2成功编译运行源代码,是用来学习Qt C++网络编程不错的示例程序。原创 2024-02-22 23:02:40 · 1224 阅读 · 1 评论 -
Qt程序的调试版和发行版对应的宏定义QT_DEBUG和QT_NO_DEBUG
在Qt编程中,有时候需要针对Debug调试版和Release发行版做条件编译,做不同的处理,比如有时在Debug版中需要在控制台打印日志,在Release版中将日志写入到文件中。Qt中提供了QT_DEBUG这个调试版宏,以及QT_NO_DEBUG这个发行版宏。在https://stackoverflow.com/中看到了很老的一篇文章:Does Qt offer a (guaranteed) debug definition?Does Qt offer a (guaranteed) debug def转载 2021-10-20 14:35:19 · 4506 阅读 · 0 评论 -
Windows下使用Qt检测U盘插入和拔出的示例Demo程序
本文转载自Qt检测U盘插入拔出Demo要做这个,要先知道Qt的QAbstractNativeEventFilter类,虚函数nativeEventFilter。这个类的主要作用是捕获全局windows消息。先看一下效果:基本注意以下两点:1、新建的类要继承QAbstractNativeEventFilter2、新建的类要被安装事件过滤,比如:qApp->installNativeEventFilter(QAbstractNativeEventFilter *filterObj);这里转载 2021-08-19 11:05:57 · 1309 阅读 · 1 评论 -
taskkill /f /im *.exe 的作用
最近在看到一个同事使用Qt编写的进程监控程序中使用taskkill命令根据进程名称来杀死进程,关于taskkill命令的具体用法可以参考MSDN文档:taskkilltaskkill [/s <computer> [/u [<domain>\]<username> [/p [<password>]]]] {[/fi <filter>] [...] [/pid <processID> | /im <imagename>]}原创 2021-07-23 17:33:20 · 4090 阅读 · 0 评论 -
Qt中使用QElapsedTimer类计算某个操作执行的毫秒时间
在Qt中有一个 QElapsedTimer类,QElapsedTimer 类提供了一种计算经过时间的快速方法。,以毫秒为单位。QElapsedTimer 类通常用于快速计算两个事件之间经过的时间。它的 API 与 QTime 的 API 相似,因此可以将使用它的代码快速移植到新类中。然而,与 QTime 不同的是,QElapsedTimer 尽可能尝试使用单调时钟。这意味着不可能将 QElapsedTimer 对象转换为人类可读的时间。该类的典型用例是确定在慢速操作中花费了多少时间。这种情况的最简单原创 2021-07-23 10:12:52 · 2423 阅读 · 0 评论 -
Qt相关学习资料
我所理解的设计模式(C++实现)——命令模式(Command Pattern)目录(?)[-]概述类图与实例角色用途实例效果与实现要点适用性概述: 我们去餐厅吃饭,我们是通过服务员来点菜,具体是谁来做这些菜和他们什么时候完成的这些菜,其实我们都不知道。抽象之,“菜单请求者”我们和“菜单实现者”厨师,2者之间是松耦合的,我们对这些菜的转载 2021-06-27 18:08:14 · 175 阅读 · 0 评论 -
如何在运行时动态添加和删除Qt Widgets
最近在看《Android编程权威指南》,边看编练习书中的例子程序,看到第21章“”音频播放与单元测试”中的21.12 深入学习:Espresso 与整合测试时,发现一个问题:ActivityTestRule这个类无法识别,如下图所示:...转载 2021-06-27 17:04:28 · 1333 阅读 · 0 评论 -
Qt中获取当前应用程序全路径
在Qt中获取应用程序全路径非常简单,直接使用QCoreApplication::applicationDirPath()这个静态函数就OK了,QString Global::exeDir(){ return QCoreApplication::applicationDirPath();}查看Qt官方帮助文档的描述就知道了:相比而言,Windows下的VC++提供的方法就有点麻烦了:// 获取当前可执行程序的全路径QString UVLightSetting::GetExeDir(){原创 2021-05-30 23:15:16 · 2358 阅读 · 0 评论 -
基于Qt5.14.2的HJ212 TCP服务端接收解析入库程序
之前写过一篇关于环保 HJ212协议解析的博文,有不少做环保行业的人文我关于HJ212-2017协议怎么解析,由于我主要是做C++开发的,之前采用C++ Boost asio库编写了一个TCP接收服务端,并解析HJ212-2017协议数据,上传到我的GitHub上面,仓库地址为:https://github.com/ccf19881030/HJ212Receiver,已经在Windows10系统下使用VS2017进行测试过,并且在CentOS8系统下使用Cmake进行编译测试。有需要的话可以自行下载:·`原创 2021-04-29 19:54:46 · 1788 阅读 · 10 评论 -
QDir示例
QDirQt中对目录遍历的支持是比较好的,比如QDir、QFileInfo、QFile等。在Qt助手中可以查到有关QDir的用法,如下图所示:下面是我本人测试的一些关于QDir类的测试代码:#include <QCoreApplication>#include <QDir>#include <QFileInfo>#include <QDebug>#include <QString>int main(int argc, char原创 2021-04-25 23:28:54 · 276 阅读 · 0 评论 -
C++判断某个路径下的文件是否存在
在Windows系统下判断一个文件是否存在是比较简单的,可以使用Windows的库函数,也可以使用Qt提供的接口。使用Windows VC++库函数// 文件是否存在bool is_file_exist(const char* path) {#ifdef _WIN32 return _access(path, 0) == 0;#else return access(path, R_OK | W_OK) == 0;#endif}2、使用Qt提供的库函数/*** @func原创 2021-04-22 20:03:00 · 2091 阅读 · 0 评论 -
VS2017+Qt开发时打开命令调试窗口
VS2017+Qt开发时打开命令调试窗口VS2017+Qt开发时打开命令调试窗口VS2017+Qt开发时打开命令调试窗口有时候在Windows10系统中使用VS2017+Qt开发需要打开命令调试窗口,为了方便调试,查看程序输出,可在程序运行同时打开cmd窗口,具体设置如下:项目--属性--链接器--系统--子系统--控制台 (/SUBSYSTEM:CONSOLE),如下图所示:不需要打开cmd的时候,设置为窗口 (/SUBSYSTEM:WINDOWS)即可。...原创 2021-04-16 20:11:02 · 1813 阅读 · 1 评论 -
Qt图形库-QCustomPlot
Qt官方已经有QCharts模块,另外还有一个QCustomPlot的基于Qt的第三方图形库:翻译 2021-04-13 18:13:22 · 1600 阅读 · 0 评论 -
Qt中QString与std::string的相互转换
在Qt中QString和std::string转换非常简单,1、std::string转QStringstd::string str = "hello wrold!";QString qstr = QString::fromStdString(str);2、QString转std::stringQString qstr = "hello wrold!";std::string str = qstr.toStdString();原创 2021-03-31 18:35:22 · 3438 阅读 · 1 评论 -
如何在QGraphicsView的边框上制作标尺?
最近使用Qt开发一个Rip的软件工具,类似于SAI软件的作业属性中的截图,如下图所示:上网查了一些关于QGraphicsView的示例,stackoverflow上面有一篇帖子:How to make a ruler on the border of a QGraphicsView,示例代码Ruler参考资料How to make a ruler on the border of a QGraphicsViewRulerGraphics View FrameworkCode Editor转载 2021-03-30 19:34:55 · 2830 阅读 · 5 评论 -
Qt 学习之路 2(64):使用 QJsonDocument 处理 JSON
本文转载自豆子的Qt 学习之路2的博客[Qt 学习之路 2(64):使用 QJsonDocument 处理 JSON](Qt 学习之路 2(64):使用 QJsonDocument 处理 JSON)在C++中有不少JSON库,比如nlohmann/jsonJSON for Modern C++一款支持对结构体、Map、数组、vector等数据进行序列化和反序列化的现代C++的JSON解析库。RapidJson腾讯开发的一款C++ JSON解析库,高效的 C++ JSON 解析/生成器,提供 S转载 2021-03-26 19:01:31 · 1009 阅读 · 0 评论 -
Windows10下使用Qt5.14.2连接mysql-8.0.16-winx64数据库报错:QMYSQL driver not loaded 原理及解决方案
最近在Windows10中使用Qt5.14.2连接MySQL数据库时碰到一个问题,就是出现QMYSQL driver not loaded的错误,我使用的系统是Windows10,使用的Qt版本是Qt 5.14.2,Qt Creator版本是4.11.1,安装的MySQL版本是mysql-8.0.16-winx64在本地MySQL数据库testdb中新建了一张users表,其表结构如下:随便添加了两条记录如下图所示:然后使用QtCreator创建一个基于控制台的Qt应用程序,进行数据库的连接,增转载 2021-03-06 18:26:20 · 1171 阅读 · 2 评论 -
Qt 可重入和线程安全
重入和线程安全重入和线程安全可重入线程安全关于Qt类的注意事项重入和线程安全本文翻译自Qt官网:重入和线程安全在整个文档中,术语“可重入”和“线程安全”用于标记类和函数,以指示它们如何在多线程应用程序中使用:即使调用使用共享数据,也可以从多个线程同时调用线程安全函数,因为对共享数据的所有引用都已序列化。重入函数也可以从多个线程中同时调用,但前提是每次调用都使用自己的数据。因此,线程安全函数始终是可重入的,但可重入函数并非始终是线程安全的。通过扩展,如果可以从多个线程安全地调用其成员函数,则翻译 2021-02-24 07:58:22 · 324 阅读 · 0 评论 -
Github上的一些高分Qt开源项目【多图】
Github上的一些高分Qt开源项目【多图】Github上的一些高分Qt开源项目【多图】1、[TileMap](https://github.com/bjorn/tiled)2、[litego](https://github.com/visualfc/liteide)3、[Clementine Music Player](https://github.com/clementine-player/Clementine)4、[QtAV](https://github.com/wang-bin/QtAV)5、[s转载 2021-01-23 00:14:54 · 39061 阅读 · 3 评论 -
【Qt】使用QPalette设置QPlainTextEdit颜色时,不生效
最近在看《Qt5.9 C++开发指南》这本书,练习2.2 可视化UI设计的示例程序sample2_2时,第32页的编写一个设置QPlainTextEdit的文本编辑框txtEdit的字体颜色时,使用QPalette调色板设置QPlainTextEdit的文本编辑框的字体颜色没有生效,具体槽函数代码如下:void QWDialog::setTextFontColor(){ // 通过调用色板来选择字体颜色 QPalette plet = ui->txtEdit->palette原创 2021-01-17 18:44:08 · 2156 阅读 · 3 评论 -
Windows10中安装Qt6.0.1开发环境
Windows10中安装Qt6开发环境下载QT在线安装包安装Qt使用`Qt Creator`创建一个QT控制台程序进行测试下载QT在线安装包首先去Getting Started with Qt页面中可以知道,QT分为在线或者离线安装或自行编译源码包三种:从Qt for Windows可以看到Windows下Qt安装和使用的一些前提条件:我本次的操作系统是Windows10,并且同时安装了VS2017和VS2019这两款软件。接下来,从Qt Download页面下载QT,页面如下图所示:选择原创 2021-01-10 13:54:23 · 3748 阅读 · 2 评论 -
Qt6的安装以及相关资料
QT6从2020年12月8号就开始发布了,具体可以参考[Qt 6.0 Released(https://www.qt.io/blog/qt-6.0-released)这篇博客,如下图所示:关于QT6的安装目前分为在线安装和离线安装两种,具体可以参考博客:Getting Started with Qt和Offline Qt Downloads,如下图所示:Qt源码包Qt 6.0源码包:The source code is available:For Windows users as a sin原创 2021-01-10 00:19:43 · 1191 阅读 · 0 评论 -
Qt 6的技术概览
Qt 6的技术概览Qt 6的技术概览Qt对用户的价值体现在哪里?新一代的QML下一代图形统一并且一致的工具库增强已有的C++ API语言支持兼容Qt 5和增量改进市场和技术产品结构欢迎你的参与和反馈Qt 6的技术概览原文:Technical vision for Qt 6 原作者:Lars Knoll 翻译校对:Richard Lin 自从七年前Qt 5发布后,我们的世界发生了很多变化,现在是时候展望和规划下一个新的主版本了。这篇博文捕捉了几个将要在Qt 6中亮相的关键点。 Qt 6将是我们Qt 5系列转载 2020-12-18 13:07:10 · 513 阅读 · 0 评论 -
FFmpeg + qt 音视频播放器 C++ 跨平台实战
FFmpeg + qt 音视频播放器 C++ 跨平台实战链接:https://pan.baidu.com/s/1FdKuwWzNB6syyN2_FWGNgg提取码:mixp转载 2020-07-15 23:52:52 · 786 阅读 · 1 评论 -
QT开源网站和相关资料
QT和QtCreator介绍 相比较微软的MFC,Qt是一个跨平台应用程序和 UI 开发框架。使用 Qt 您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。记得之前在上海的一家公司里开发的手机助手类的程序就是采用QT开发的,分别针对Windows和Mac开发手机助手,第一个版本基于QML,第二个版本采用QT C++方式。Qt Creator 是全...原创 2020-02-14 16:36:55 · 5629 阅读 · 1 评论 -
QSettings读写ini配置文件
Qt中使用QSettings类读取ini后缀的配置文件非常简单,使用该类也可以很简单的操作Windows注册表。以前也使用过MFC中的WritePrivateProfileString()和GetPrivateProfileString()这两个API操作ini配置文件。使用QSettings类读写ini配置文件的示例代码相关代码如下:// test.cpp#include <QCo...原创 2019-12-16 21:47:04 · 537 阅读 · 0 评论 -
CentOS7和Ubuntu18.10下运行Qt Creator出现cannot find -lGL的问题的解决方案
解决方法:缺少相应的opengl的库,需要安装opengl库Ubuntu下解决Qt5.7.0 cannot find -lGL有两种原因,一种是没有按照libGL库,那么就安装:sudo apt-get install libgl1-mesa-dev一种是装了,但是libGL动态链接库的路径不对,那么就配置一下路径:$ locate libGL/usr/lib/i386-linux-...转载 2019-11-10 08:51:10 · 802 阅读 · 0 评论 -
将某个Qt4项目升级到Qt5遇到的问题
本文转载自http://hi.baidu.com/xchinux/item/9044d8ce986accbb0d0a7b87 一、将某个QT4项目改成QT5遇到的问题 该Qt4项目以前是使用Qt4.7.4 MSVC2008开发的,因为使用到了OWC10(Office Web Components),使用MSVC编译器的话无法正常升级到Qt4.8.x和Qt5,于是将编译器转成转载 2013-09-24 23:02:11 · 4890 阅读 · 0 评论 -
Qt4 QWebView的使用例子
最近项目中使用QT4框架开发PC端软件,所以耐着性子学习了一下QT相关的东西。 下面是QT4中QWebView的使用方法,觉得蛮方便的。我使用的开发环境是:Win7+Qt 4,8,5开发库+qtcreator-2.8.0+VS2008编译器。 首先创建一个空的QT项目,取名字为:WebViewDemo 再创建一个main.cpp,代码如下:#include #include原创 2013-10-13 23:01:00 · 22116 阅读 · 1 评论 -
使用QtScript库解析Json数组例子
本文转载自:http://blog.sina.com.cn/s/blog_671732440100uwxh.html使用qtscipt库解析json数组首先在工程文件中加QT += script然后头文件加#include 然后解析QString str = "{\"name\":\"xiaotang\", \"age\":\"23\", \"chi\":转载 2013-10-09 22:40:55 · 9021 阅读 · 3 评论 -
QT的三种开发方式
最近在学习QT GUI,单纯使用C++硬编码的方式,直接是采用QWidget部件来做,而不是采用QT Designer做UI界面,也不是采用QML+Javascript。单纯使用C++硬编码的方式,缺点就是代码量大,优点是灵活。其中用到了类似于Web开发中的CSS的QT样式表QSS。 硬着头皮看了QT Assistant以及QT Digia官网关于QT StyleSheet的介绍,主原创 2013-10-30 14:33:31 · 2874 阅读 · 0 评论 -
QT的一些小知识
记录一下前段时间工作中用到的东西,包括开发工具和一些简单的技巧吧。也许对于大家来说耳熟能详了。 最开始学习QT记得是在Ubuntu12.04下用apt命令行的方式安装了QT4.8.4以及QT Creator等工具,QT算是Linux下比较好的C++ GUI开源框架了。然后使用了QT_SDK_Win_Offline_V1_2_en.exe版本,不过现在需要去诺基亚网址:http://dev原创 2013-10-29 22:38:52 · 2443 阅读 · 0 评论 -
QT5.2 Assistant-设置应用程序图标
在Qt助手(assistant.exe)搜索关键字"Setting the Application Icon"就可以看到在各种平台设置Qt程序图标的方法,包括QT支持的Windows、MAC、Linux(KDE和GNOME)都有相应的方法。 下面是我翻译的关于在QT中设置应用程序图标的译文,如有不合理的地方还望大家指出,原文来自QT5.2助手的【Set the Applicatio翻译 2014-01-04 13:08:34 · 8397 阅读 · 0 评论 -
Win7下Qt5.2中使用OpenGL的glu函数库无法使用的解决方案
最近在Window7使用Qt5.2学习OpenGL时,出现了以OpenGL中glu开头的函数库无法使用的错误,例如:'gluPerspective' was not declared in this scope. 上网搜了以下相关的解决方法,都是针对QT低版本的,例如这篇文章:QT常见错误之GLU头文件没法使用。我尝试了以下,最终在Window7下的QT5.2环境下解决了这个问原创 2014-01-04 15:26:58 · 15452 阅读 · 3 评论 -
Windows7下移植Qt4.8.4项目到QT5.2上时遇到的一些问题
最近在Windows7下将Qt4.8.4+MSVC2008的项目移植到QT5.2下时,遇到了一些小问题:问题一:错误:C1083: 无法打开包括文件:“QApplication”: No such file or directory出现原因:Qt5里不再用QtGui模块,而是使用QtWidgets模块。解决方法:在*.pro里加上greaterThan(QT_MAJOR_VERSION原创 2014-01-13 14:40:08 · 8522 阅读 · 1 评论 -
Qt5.2中使用ping命令实现Ip扫描功能
在类似于Free IP Scanner 2.1一类的Ip扫描器软件中,会用到ping命令。如果使用Qt编程实现,主要会用QThread、QProcess这两个类。关于这两个类的具体用法可以查阅Qt助手或者QT官网。 在QT中为了扫描大量的Ip,通常需要将扫描Ip的任务放在一个单独的线程来完成,这样需要子类化QThread,重写其run()方法。从QThread类派生出一个ShellPr原创 2014-01-23 19:37:40 · 13102 阅读 · 6 评论 -
Qt 打开指定网站/系统文件夹
本文转载自:http://blog.csdn.net/robertkun/article/details/7802977一、QT打开指定网站和文件夹在Qt程序中,如果要打开指定网站或系统中的文件夹,可以使用QDesktopServices类的openUrl方法。详见http://qt-project.org/doc/qt-4.8/qdesktopservices.html比转载 2014-01-17 16:36:13 · 6016 阅读 · 0 评论 -
C++11 in Qt5
今天用qt5.1编译一个使用c++11 的boost 例程,编译#include 时报错说不支持,要编译选项 -std=c++11或-std=gnu++11. 不知该怎么设置让编译器支持c++11呢方法1:在pro文件中写上: QMAKE_CXXFLAGS += -std=c++11方法2:If you use qmake, you can add that li转载 2014-07-27 10:45:25 · 4096 阅读 · 1 评论 -
QT5.0.1在Windows下 出现QApplication: No such file or directory 问题的解决办法
最近在Windows7下安装了最新的Qt5.0.1的Windows安装包,可以到QT官网http://qt-project.org/downloads,该版本集成了Qt5.0.1库、MinGW4.7编译器、Qt Creator 2.6.2,貌似解决了以前Qt Creator不能正常使用MinGW编译器的问题。下载后默认安装就OK了,不过安装后居然有3.68G的文件,比VS2012多不少。原创 2013-03-07 21:01:00 · 64644 阅读 · 8 评论