草上爬
专注技术,热爱分享
展开
-
ASIO网络调试助手之四:浅谈QTcpServer性能
网络上有些质疑Qt Network模块性能的声音,本文将从理论和压测两个方面对比ASIO tcp server和QTcpServer在Windows上的性能,最后给出结论。原创 2024-10-18 00:48:51 · 1088 阅读 · 0 评论 -
ASIO网络调试助手之三:ASIO网络编程注意事项
之前用过uv-cpp,和ASIO一样, 也支持异步机制,因此ASIO用起来还是比较顺手的,下面是个人总结的四点注意事项。原创 2024-09-14 22:35:53 · 2108 阅读 · 0 评论 -
ASIO网络调试助手之二:网络通信原理
网络调试助手是构建于网络套接字(Socket)组件之上的通信,而Socket本质上是对TCP/IP协议栈模型的封装。要熟练使用网络调试助手,就必须理解网络调试助手的通信原理,也就是要理解Socket以及TCP/IP协议的通信机制。原创 2024-09-08 22:18:31 · 2588 阅读 · 0 评论 -
ASIO网络调试助手之一:简介
多年前,写过几篇的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。开发环境:Win10支持协议:独立的Asio()只包含了头文件,不依赖Boost,使用时只需定义ASIO_STANDALONE,并将Asio的目录添加到编译系统的include path。Asio现在支持C++11/14/17/20,源码里提供了各个C++版本的examples。原创 2024-09-08 18:41:58 · 1267 阅读 · 0 评论 -
QSS编辑器QssEditor之三:Ribbon控件与换肤
Ribbon控件即Office样式UI,Ribbon控件有许多开源实现,例如:SARibbon功能强大,但以学习为目的的话,我们可以自己去实现一个简单的。基本思路是自定义QTabWidget,然后通过QSS调整样式。如上图所示,我们可以实现一个类QHRibbon,继承自QTabWidget,通过接口void addTab(const QString &tabName)和void removeTab(const QString &tabName)来动态添加和删除Tab页;原创 2022-11-07 15:41:58 · 5651 阅读 · 2 评论 -
QSS编辑器QssEditor之二:加载有变量的QSS
Qt样式表可以让你自定义任何一个Qt控件的样式包括颜色、边框、背景等等(你想的到样式都可以),Qt样式表的概念、术语和语法与HTML的CSS样式表类似。样式表是文本规范。一般形式也可以使用QWidget::setStyleSheet()在特定小部件(及其子部件)上设置如果在不同级别上设置了多个样式表,Qt将从所有设置的样式表派生有效样式表。这称为级联。原创 2022-11-07 12:45:48 · 5249 阅读 · 1 评论 -
QSS编辑器QssEditor之一:简介
本编辑器参考了以下两个开源QSS编辑器1.这个编辑器能正常使用,支持实时预览,UI上略显简陋。但是github上release的可执行版本是不支持语法提示和自动补全的,如果想要支持这个特性,需要自己下载源码,将编辑器引擎切换到QScintilla,然后重新编译2.这个编辑器是用PyQt开发的,UI布局上就好得多,但是bug多到没法用,说好的实时预览都没兑现。本编辑器的UI布局参考该编辑器。原创 2022-11-05 15:07:03 · 10799 阅读 · 15 评论 -
Qt多线程http下载器之四:Win10上使用VS2017编译libcurl
编译libcurl时,libssh2和openssl应该都不是必须的,这从libcur的vs工程配置能看出来这里我们编译DLL Release-DLL OpenSSL-DLL LibSSH2,win32libssl2依赖zlib和openssl,下载相关源码并解压下载地址解压,如下图所示。...............原创 2022-08-05 13:45:42 · 4674 阅读 · 0 评论 -
Qt多线程http下载器之三:文件下载异常的处理
用记事本打开,发现其内容是html文本,其中有document.cookie属性,我们需要将该cookie设置到下载的请求参数中。,通用的下载方式只能下载成一个100多字节的文件,但是相关API却返回下载成功。用Qt的network模块设置cookie的代码如下。libcur设置cookie选项的代码如下。右键查看其属性,只有187字节。这样就能正常下载了,如下图所示。下载后的文件如下所示。原创 2022-11-05 09:32:48 · 4845 阅读 · 3 评论 -
Qt多线程http下载器之二:仿迅雷新建下载任务
下图是迅雷9的新建任务界面,目前最新的版本是迅雷11,迅雷9已无法准确检测出文件大小,但任然能正常下载。个人觉得迅雷9的新建任务界面更美观,故仿之。下图是我用Qt实现的效果,功能和迅雷9类似,复制下载url到输入框,迅雷能够自动解析下载文件信息,而且支持文件名的修改。当然还有个比较特别的地方,就是QTableWidget标题栏的样式。图中添加的任务是360安全卫士和爱奇艺。原创 2022-11-04 23:15:11 · 5587 阅读 · 9 评论 -
Qt多线程http下载器之一:仿百度网盘的http下载器
本下载器基于Qt和libcurl,下载未使用Qt的network模块,因为使用libcurl方便封装成SDK供第三方使用,当然下述的这些功能用network模块也是可以实现的。√ 支持多线程下载√ 支持断点续传√ 支持暂停/继续下载√ 支持还原下载任务√ 支持获取实时下载速率、下载大小和剩余时间√ 支持下载限速√ 支持磁盘缓存√ 支持文件哈希校验√ 支持大文件下载√ 支持兼容服务器对客户端加速下载的限制√ 支持下载任务状态记录,下次启动时自动下载未完成的任务。原创 2022-11-04 16:34:48 · 6696 阅读 · 32 评论