
Qt
文章平均质量分 51
New QObject
电力+码农
展开
-
Qt Android 开发笔记
Qt android原创 2022-08-02 16:14:13 · 813 阅读 · 1 评论 -
软件在线升级系统设计
Qt软件在线升级系统设计原创 2022-03-16 13:55:01 · 1798 阅读 · 0 评论 -
Qt 批量编译工程
问题描述随着Qt工程越来越多,目前已经有90多个工程了,有些源文件是公共的,修改一处就需要编译所有工程。试了Qt的子项目管理,发现能将所有工程全部添加到一个pro文件中,但没法一键全部编译,还得右键一个一个的编译。所以,就想写一个小的程序来实现批量的编译。解决方案基本思路就是先调用qmake编译pro文件生成makefile文件,然后调用nmake编译程序。小程序的作用就是生成一个批处理文件,然后编译的时候,直接执行批处理文件就行了。[General]qmake=D:/Qt/Qt5.5.1/5.5原创 2021-05-31 13:45:52 · 849 阅读 · 0 评论 -
QThread moveToThread用法总结
方案1Qt中创建独立的线程,一般都是采用继承QThread类,然后重写run虚函数,在run函数中执行任务。class CThread: public QThread{Q_OBJECT public: CThread(QObject *parent = nullptr){}private: virtual void run() { //task while(true) { } }}当需要在独立的线程中用到自定义的类,用到信号槽的时候,需要在独立线程中,开启一个.原创 2021-04-04 10:26:19 · 1842 阅读 · 1 评论 -
基于QSsh实现sftp客户端以及shell
需求描述公司的产品基本都是基于arm-Linux系统的,sshd服务肯定都是标配了,目前需要实现一个通过上位机与仪器相连,完成仪器的升级。各种方案使用下来,发现最简单以及有效的方案还是采用如下步骤:将应用软件压缩打包成tar包;开机启动脚本启动的时候,去检测是否存在需要升级的tar包。如果存在升级包,则解压覆盖升级包;启动主程序;所以需要做的工作有两个部分,第一步是将升级包下载到仪器指定位置,第二步是重启仪器,等待升级完成。考虑过ftp服务、私有协议等,发现用sftp是最方便的,因为系统本身都原创 2020-10-29 15:11:34 · 7035 阅读 · 61 评论 -
基于cJson的 Qt json处理库
qt4没有原生的库对json处理,Qt5提供了json处理库,使用起来稍微感觉有点麻烦,特别是修改值的时候,非常不方便。cJSON是一个C语言编写的json处理库,已经被大量的使用,稳定性和高效性毋庸置疑,该库只包含一个.h 和 .cpp文件,使用起来非常方便,但是对于习惯Qt开发者来说,CJSON库需要自己管理内存的开辟和释放,使用不是特别方便。QJSON库基于CJSON,进行Qt的封装,解决Qt原生使用不方便和CJSON手动管理内存的问题。本项目已经在Github上开源,QJSON,以下是头文件,一看原创 2020-07-17 10:03:58 · 1066 阅读 · 0 评论 -
Qt编译qmqtt
mqtt协议目前是物联网领域使用最广的协议了,比如阿里云物联网平台与设备就是采用的mqtt协议。mqtt协议的介绍,网上已经非常多,下面是几个关键点:MQTT协议基于TCP协议,设备是客户端,云服务器是服务端;基于发布/订阅消息机制来实现数据交互,客户端可以发布和订阅多个topic(主题),客户端1发布某个topic,客户端2订阅某个topic,这样客户端2就能接收到客户端1发出的数据了;topic(主题)可以理解为设备要对外发布数据或者接收的指令。比如,上传某个或者某些数据定义为一个topic;原创 2020-07-17 09:42:09 · 1511 阅读 · 2 评论 -
QJsonArray、QJsonObject修改值
Qt5的json读取和新建接口都挺方便的,但是对现有文件进行修改,用起来感觉很不方便,pugixml的接口感觉就做的非常好了,下面对修改方法进行一下记录。示例代码 //构建测试数据 QJsonObject json; QJsonArray array; for(int i = 0; i < 3; i++) { QJsonObject ...原创 2020-05-06 11:44:27 · 6170 阅读 · 1 评论 -
Qt HTTP post文件
用Qt与服务器进行文件交互,开始想的用ftp,由于文件不大,不超过2M,所以互联网的同事建议用HTTP post。下面把Qt post文件的方法记录一下。bool CImpedianceReport::PostPicture(int report_id, QString fileName){ //设置发送的数据 bool bRet = false; QHttpMulti...原创 2019-07-24 09:50:44 · 2806 阅读 · 0 评论 -
QFtp 阻塞式调用
问题描述Qt应用由于要跑在嵌入式Linux系统中,里面的Qt版本是4.8,所以决定采用QFtp来进行文件传输。QFtp有个问题是异步调用的,所以用起来很不方便,所以决定用QEventLoop来阻塞处理。方案一QFtp *ftp = new QFtp(this);QEventLoop loop;connect(m_ftp, SIGNAL(commandFinished(int,bool))...原创 2019-07-24 09:42:06 · 1192 阅读 · 1 评论 -
Qt编写的删除C++代码注释小工具
删除C++代码注释小工具遇到的问题直接上代码遇到的问题查看前辈的Qt代码,发现好多没用的代码注释掉了,但是没删,而且这种代码非常多,所以想将这些注释删除掉。整体设计思路如下:1、注释就是两种情况: ‘//’ 和’/* /’,其中/之中也可能会包含//2、定义三种模式:自由查找、找到了/、找到了/直接上代码 ui-&amp;amp;gt;progressBar-&amp;amp;gt;setMaximum(ui-...原创 2018-11-11 19:52:04 · 1757 阅读 · 0 评论 -
windows下Qt编译MySQL驱动
我的Qt使用的Qt4.8,用的编译器是msvc2010。下面说一下使用步骤: 1、下载MySQL,推荐用MySQL5.5; 下面这位大神给出了下载连接:http://blog.youkuaiyun.com/tenlee/article/details/43614241 2、第二步就是安装Qt,安装的时候记得把源码勾上; 3、第三步就是用Qt的库编译出适合我们编译器的QMySql驱动,进入下面的目录:原创 2016-11-17 09:33:59 · 973 阅读 · 1 评论 -
Qt事件原理小结
最近做一个项目,想把QTableWidget的左右键改为翻页的效果,重新整理了一下Qt的事件机制。Qt的事件机制是这样的:所有事件都要先送到main函数中的qApp,也就是QApplication的实例,从这里再进行分发。分发到哪里呢?对于键盘事件要看当前是谁获得了焦点,这个事件就发给那个对象。如果这个对象处理了事件,那么事件的传递就到此为止;如果这个对象不处理这个事件,事件就会传递给它的父对象,如原创 2015-10-13 16:26:09 · 942 阅读 · 0 评论 -
Qt调用dll的步骤
做个记录,以防忘记。 -L 参数指定 .lib/.a 文件的位置 -l 参数指定导入库文件名(不要加扩展名) 另外,导入库文件的路径中,反斜杠用的是向右倾斜的示例:LIBS+= -L ..\libcltdll-build-desktop-Qt_4_8_0__4_8_0____\debug -l libcltd原创 2015-08-27 11:10:35 · 737 阅读 · 0 评论 -
QTableWidget的使用记录
Qt界面编程之QTableWidget 主要参考了,这位大神的文章:http://blog.youkuaiyun.com/xcy2011sky/article/details/6991073先看效果图: 这里主要说明一下,这个类的常用用法:// 设置数据的行数和列数 ui->tableWidget->setColumnCount(2); ui->tableWidget->setRowC原创 2015-04-12 09:49:19 · 796 阅读 · 0 评论