
Qt开发
文章平均质量分 79
Qt的相关开发。
flysnow010
毕业于北京科技大学,有超过20年软件开发经验。
展开
-
Qt5.15.2 使用C++ filesystem标准库
C++标准发展的很快C++11标准刚普及时,后续C++14/C++17/C++20/C++23相继而来,而Qt5默认使用编译器版本时GCC8.1,对C++17不是全面支持,使用filesystem会有编译错误。通过自定义构建套件的方式将编译版本提高到GCC11.2.0,可以完全支持C++17标准。原创 2024-07-31 10:04:46 · 876 阅读 · 0 评论 -
Qt添加构建套件
在使用Qt 5.15.2开发中,默认GCC编译器使用的版本是GCC8.1,这个版本对C++17支持不太好,另外不支持C++20。其实可以通过添加构建套件的方式,增加对高版本GCC编译器支持。本文后续将说明如何添加构建套件。原创 2024-07-31 09:37:08 · 4123 阅读 · 0 评论 -
Qt调用Matlab(一)
MATLAB是MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。在本文利用Qt通过C/C++来访问Matlab功能。原创 2024-07-05 10:55:52 · 1844 阅读 · 0 评论 -
Qt实现XYModem协议(八)
XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。本文利用C++实现XYModem-1K协议.原创 2024-04-20 21:21:21 · 794 阅读 · 2 评论 -
Qt实现XYModem协议(七)
XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。本文利用C++实现XYModem-1K协议原创 2024-04-19 10:39:22 · 696 阅读 · 5 评论 -
Qt实现XYModem协议(六)
XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。本文利用C++实现XYModem-1K协议原创 2024-04-19 10:00:56 · 639 阅读 · 0 评论 -
Qt实现XYModem协议(五)
XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。本文利用C++实现XYModem-1K协议.原创 2024-04-18 16:47:36 · 1201 阅读 · 0 评论 -
Qt实现XYModem协议(四)
XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。本文利用C++实现XYModem-1K协议.原创 2024-04-18 09:39:02 · 803 阅读 · 0 评论 -
Qt实现XYModem协议(三)
XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。本文利用C++实现XYModem-1K协议。原创 2024-04-17 14:48:31 · 1106 阅读 · 0 评论 -
Qt实现XYModem协议(二)
XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。原创 2024-04-17 13:38:38 · 479 阅读 · 0 评论 -
Qt实现XYModem协议(一)
Kermit文件运输协议提供了一条从大型计算机下载文件到微机的途径。它已被用于进行公用数据传输。本文利用C++实现Kermit协议,并利用Qt串口类QSerialPort实现数据读写。原创 2024-04-15 10:52:47 · 1685 阅读 · 0 评论 -
Qt实现Kermit协议(六)
该模块实现了Kermit异步接收文件功能。原创 2024-04-08 17:29:43 · 433 阅读 · 1 评论 -
Qt实现Kermit协议(五)
该模块实现了Kermit异步发送文件功能。原创 2024-04-08 17:28:44 · 636 阅读 · 0 评论 -
Qt实现Kermit协议(一)
Kermit文件运输协议提供了一条从大型计算机下载文件到微机的途径。它已被用于进行公用数据传输。其特性如下:- Kermit文件运输协议是一个半双工的通信协议。- 它支持7位ASCII字符。- 数据以可多达96字节长度的可变长度的分组形式传输。- 对每个被传送分组需要一个确认。- Kermit文件运输协议在每次会话中可以传送多个文件。本文利用C++实现Kermit协议,并利用Qt串口类QSerialPort实现数据读写。原创 2024-03-29 18:38:15 · 946 阅读 · 0 评论 -
Qt开发的多窗口文件资源管理器(SFTP,SCP)
一款基于Qt开发的Windows资源管理器。功能列表:- 支持双窗口和多Tab页- 支持命令行操作。 - 支持文件夹收藏。- 支持文件浏览历史。- 支持文件搜索操作。- 支持桌面文件夹。- ssh配置加密保存。- 支持文本文件查看/编辑操作(利用MobaTextEditor).- 支持文件拖放操作,包括双窗口拖放及与其它应用拖放操作。- 类似Windows11的简介右键菜单。- 支持远程文件系统sftp及scp。- 支持压缩文件夹浏览/编辑/修改/删除等操作(利用7zip)。原创 2024-03-28 17:03:26 · 1162 阅读 · 3 评论 -
Qt实现TFTP Server和 TFTP Client(四)
Server包括下面3个类:- ServerSocket- TFtpServer- TFtpServerWidget原创 2024-03-27 10:24:27 · 783 阅读 · 0 评论 -
Qt实现TFTP Server和 TFTP Client(三)
Client包括下面3个类:- ClientSocke- TFtpClient- TFtpClientWidget原创 2024-03-26 11:26:06 · 1139 阅读 · 0 评论 -
Qt实现TFTP Server和 TFTP Client(二)
Core模块包括下面4个类:- TFTP- BaseUdp- TFtpClientFile- TFtpServerFile原创 2024-03-25 10:41:57 · 1724 阅读 · 0 评论 -
Qt实现TFTP Server和 TFTP Client(一)
TFTP协议是基于UDP的简单文件传输协议,协议双方为Client和Server.Client和Server之间通过5种消息来传输文件,消息前两个字节Code是消息类型,消息内容随消息类型不同而不同。传输模式有三种:octet,netascii和mail,octet为二进制模式,netascii为文本模式,mail为文本模式,不过收到的文本不是保存到文件,而是打印出来,现在已不常用。DATA消息种数据长度是512字节,最后一个数据包可能会小于512。本文描述如何利用C++基于Qt5.12实现TFTP的Se原创 2024-03-22 11:13:21 · 1468 阅读 · 0 评论 -
Qt拖放文件实现(Drag,Drop, MimeData )
本文讲述了基于Qt实现文件拖放操作。拖放操作至少需要两个窗口,一个作为拖放源窗口,另一个作为拖放目标窗口。原创 2024-03-20 10:38:03 · 1951 阅读 · 0 评论 -
Qt线程另一种使用方式(QThread, moveToThread)
Qt界面程序是基于消息的,如果在界面程序中调用耗时操作会导致界面无反应。解决这种问题最容易想到的是将耗时操作放入线程中。Qt提供了QThread线程类,可以从Thread派生一个类实现虚函数run即可。其实QThread还有一种用法,不用从QThread派生,直接使用QThread就可以了。本文讲的就是这种方式。原创 2024-03-19 10:18:17 · 978 阅读 · 0 评论 -
Qt实现Windows的SendTo菜单(Windows Shell编程)
这里定义三个类SendToMenu和ShellMenuItem以及实现辅助类ContextMenuHelper.Q_OBJECTpublic:~Widget();原创 2024-03-15 15:54:53 · 952 阅读 · 0 评论 -
Qt弹出U盘及光盘(Windows API)
本文描述了在Qt下利用Windows API实现U盘及光盘弹出操作。原创 2024-03-13 16:46:12 · 684 阅读 · 0 评论 -
Qt实现桌面菜单(Windows Shell编程)
本文基于Qt利用Windows的Shell编程实现Windows桌面菜单和我的电脑菜单。原创 2024-03-13 13:57:44 · 593 阅读 · 0 评论 -
Qt实现Windows右键菜单(Windows Shell, 单例)
本文基于Qt利用Windows的Shell编程实现文件和目录的右键菜单。实现时构造了一个单例辅助类来实现右键菜单。原创 2024-03-11 15:57:53 · 847 阅读 · 1 评论 -
Qt动态检测U盘插拔
本文描述了在Qt下如何利用Windows的消息WM_DEVICECHANGE来检测U盘插拔操作。原创 2024-03-11 13:38:10 · 1437 阅读 · 2 评论 -
QListView数据显示优化速度
最近在为自己写的文件管理器做文件搜索功能,搜索过程中将搜索到的文件放入列表框中。考虑到搜索文件比较多没有使用QListWidget而是使用使用。搜到文件不多时大概几十个时显示速度很快,当搜索整个磁盘时这是有几百万个文件时,显示速度的特别慢,鼠标一直在转圈。,导致QListView内部对所有的项计算一遍,200多万条数据就需要计算200多万次,速度当然很慢了。后,QListView只计算可显示的几十行,速度很快,达到设计要求。经过调试发现QListView有一个属性。显示也就几十行,不应该很慢。原创 2024-03-01 15:51:47 · 701 阅读 · 0 评论 -
Qt程序从EXE&DLL中提取Icon
首先调用Windows API函数ExtractIconEx从文件获取HICON句柄,再利用QtWin::fromHICON函数将HICON转换为QIcon。直接EXE和DLL的文件名和图标索引传递给GetIcon来获取EXE和DLL中的图标。原创 2023-04-24 14:30:14 · 620 阅读 · 0 评论 -
Qt程序如何与Windows资源管理器互动剪切/拷贝/粘贴文件
本文描述Qt程序与Windows资源管理器互动拷贝粘贴文件。Windows资源管理器剪切/拷贝文件,Qt程序粘贴文件。Qt程序剪切/拷贝文件,Windows资源管理器粘贴文件。原创 2023-04-21 10:00:34 · 957 阅读 · 1 评论 -
基于XMPP的发布订阅系统(五)
基于XMPP的发布订阅系统(五)测试启动XmppServerclientConnected: "publisher@pubsub.flysnow/alarmsclientConnected: "subscriber@pubsub.flysnow/pc"clientDisconnected: "publisher@pubsub.flysnow/alaclientDisconnected: "subscriber@pubsub.flysnow/pcclientConnected: "原创 2020-07-23 10:26:53 · 221 阅读 · 0 评论 -
基于XMPP的发布订阅系统(四)
基于XMPP的发布订阅系统(四)类图XmppSubscriberXmppSubManagerXmppSubManager.h#ifndef XMPPSUBMANAGER_H#define XMPPSUBMANAGER_H#include <qxmpp/QXmppClientExtension.h>class XmppSubManager : public QXmppClientExtension{ Q_OBJECTpublic: QStringLis原创 2020-07-23 09:56:09 · 237 阅读 · 0 评论 -
基于XMPP的发布订阅系统(三)
基于XMPP的发布订阅系统(三)XmppPublisher类图XmppPubManagerXmppPubManager.h#ifndef XMPPPUBMANAGER_H#define XMPPPUBMANAGER_H#include <qxmpp/QXmppClientExtension.h>#include <qxmpp/QXmppPubSubIq.h>class XmppPubManager : public QXmppClientExtensi原创 2020-07-22 18:02:06 · 288 阅读 · 0 评论 -
基于XMPP的发布订阅系统(二)
基于XMPP的发布订阅系统(二)XmppServer类图XmppServerXmppServer.h#ifndef XMPPSERVER_H#define XMPPSERVER_H#include <QObject>class QXmppServer;class QXmppLogger;class QXmppPasswordChecker;class XmppPubSubManager;class PingManager;class XmppServe原创 2020-07-22 17:06:44 · 303 阅读 · 0 评论 -
基于XMPP的发布订阅系统(一)
基于XMPP的发布订阅系统(一)背景运维人员在运维系统过程中,需要时刻关注系统的运行状态,在系统出现问题时去解决问题。但这时可能已经导致系统交付能力延时,影响效益。其实有些问题可以通过通过提前预警的方式通知运维人员快速处理问题,减少损失。运维中预警的方式有短信,邮件和企业微信等。不过以上这些方式要么通知不及时,要么需要额外的费用。通过调研发现通过XMPP协议实现发布订阅方式实现预警是可行的。本文后面是实现的详细步骤。XMPP介绍XMPP是一种基于标准通用标记语言的子集XML的协议,它原创 2020-07-22 16:34:20 · 489 阅读 · 0 评论