
Qt
文章平均质量分 85
介绍Qt在各类场景中应用的例子。
丁劲犇
五香面蚕豆,麻酱豆腐卤;戗刀磨剪子,钢筋锅换底。修----理伞,有乌龟壳王巴盖拿来卖,甜--米酒----来碗撒汤,尅个烧饼,一两碗友谊巷的豆腐脑,三四个相山庙的夜归人。岁月催银鬓,光阴染发梢,濉河斜见柳,秋雨且潇潇。抱病婉谢红尘宴,遮颜入市觅佳肴。曲终席尽人未散,把酒对月话故交。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用B210在Linux下实时处理ETC专用短程通信数据(3)-SDR平台集成
本文介绍了将ETC信号处理模块集成到taskBus平台的过程。该模块能够实时处理20MHz采样的IQ数据,解析ETC ClassA基础ASK波形和FM0编码,支持上下行链路切换。作者分享了模块的功能设计、代码实现方法,以及在实际测试中的表现。整个系统在高端硬件上运行流畅,处理20M数据时性能优异。原创 2025-08-19 12:40:47 · 574 阅读 · 0 评论 -
Qt Graphs 模块拟取代 charts 和 data visualization的技术测试
Qt 6.10将弃用charts和data visualization模块,功能将合并到graphs模块。这一重大API变化需要开发者注意兼容性问题:1) QML渲染器依赖3D加速,在虚拟机或老旧硬件上性能较差;2) graphs模块强制使用QML混合编程,增加了C++调用QML的复杂度。测试代码展示了如何通过QQuickWidget集成graphs模块,实现动态折线图功能,包括数据刷新和交互事件处理。开发者需评估现有应用对这些模块的依赖,提前规划迁移方案。原创 2025-07-19 15:39:26 · 1041 阅读 · 3 评论 -
用 Turbo Vision 2 为 Qt 6 控制台应用创建 TUI 字符 MainFrame
本文介绍了如何在Qt框架中集成Turbo Vision字符界面库。通过将Turbo Vision的事件循环运行在独立线程中,实现了与Qt主线程的并行运行。作者展示了如何改造Turbo Vision的编辑器示例,使其成为Qt应用程序的一部分,包括: 下载并编译开源的Turbo Vision库 创建Qt控制台项目并配置工程文件 使用QtConcurrent在子线程运行Turbo Vision事件循环 通过多重继承将QObject与TApplication结合 改造编辑器示例代码使其兼容Qt环境原创 2025-07-05 20:13:02 · 735 阅读 · 2 评论 -
在VSCode中借助AI丰富C++Qt应用程序
本文介绍了如何利用VSCode搭配国产AI助手辅助Qt开发。作者对比了VSCode与传统IDE(QtCreator/VS)的差异,指出VSCode凭借开源特性、可扩展性和语言支持优势,成为AI插件最丰富的编辑器。文章详细讲解了VSCode环境下Qt项目的配置流程,包括安装Qt扩展包、CMake工具链选择及调试配置。针对qmake与CMake的取舍,作者分析Qt正逐步向CMake过渡的趋势。最后推荐使用VSCode+CodeGeeX的组合,发挥AI在代码补全和注释生成方面的优势,提升Qt开发效率。原创 2025-06-10 07:26:01 · 1201 阅读 · 0 评论 -
基于Qt的MCP LLM代理服务开发实战:从0到1扩展大语言模型
摘要 本文介绍了如何利用Qt框架开发符合MCP协议的AI代理服务器,实现科学计算领域C++算法与AI工具的对接。文章首先阐述了MCP协议的核心功能,包括服务初始化、工具列表查询和工具调用等JSON-RPC交互流程。随后详细讲解了基于Qt 6.9的开发环境搭建和项目结构设计,重点展示了初始化流程和工具列表查询的代码实现。该方案通过轻量级封装现有C++计算功能,为传统科学计算系统赋予AI调用能力,兼具开发效率和性能优势,是连接科学计算与大语言模型的有效桥梁。 关键词:MCP协议、Qt开发、AI代理、科学计算、工原创 2025-05-28 21:30:21 · 1498 阅读 · 1 评论 -
为msys2 qtcreator 添加minimap插件显示滚动条缩略图
minimap插件是KDE和VS里非常好用的滚动条插件,但是一直以来,QtCreator里都没有默认安装。近期有国外大佬 cristian-adam已经在github上更新了最新的版本,可以用了!本文介绍了安装方法,效果,以及概略介绍了工作原理。原创 2025-03-03 08:00:00 · 341 阅读 · 0 评论 -
国产OS上完整编译Qt5.15、搭建基本开发环境需要的库
近期有师弟问我国产OS安装Qt5.15编译老是不完整,不是没声音,就是没视频,或者没有xcb。通过QEMU模拟Arm64,闲来20几天摸索,完整编译了Qt5.15,并编译成功了我的SDR玩具taskBus。使用DeepSeek,协助生成了包的列表.原创 2025-02-23 13:42:14 · 983 阅读 · 0 评论 -
在无GUI的Linux系统中使用字符图案和VNC运行Qt Widgets程序
大部分服务器并没有GUI,运行的是基础的Linux系统,甚至是容器。如果现实情况不允许我们安装图形界面,是不是就完全无法使用这些程序了呢?答案是否定的。本文介绍如何在字符界面下使用Qt GUI程序。原创 2025-01-01 08:30:00 · 785 阅读 · 0 评论 -
慧眼识珠-基础科研团队可选择MSYS2全栈工具链
计算机是碳基大脑的延伸,选择合适的工具,会显著降低学习成本,提高你的效率。本文介绍了非IT行业的工程师如何选择工具链的技巧。原创 2024-12-22 09:15:10 · 1153 阅读 · 0 评论 -
让 Win10 上网本 Debug 模式 QUDPSocket 信号&槽 收发不丢包的方法总结
我们探讨了不少UDP丢包的解决方法,其实,经过几年的摸索测试,真正的方法非常简单, 无需修改代码。通过本文的设置,赛扬处理器的老上网本,使用 Qt QUupSocket和信号-槽时,也能1包不丢。原创 2024-12-11 20:56:37 · 944 阅读 · 0 评论 -
解决2024-11 static版本MSYS2 Qt6.8 mingw64/ucrt64 错误和windeployqt的小问题
很久没有pacman我的msys2了,今天当我升级MSYS2 到2024年11月时,静态编译的UCRT64 和MingW64 版本的Qt6 都不工作了, 此外 Qt5 的 windeployqt也有依赖问题。原创 2024-11-19 20:39:55 · 1030 阅读 · 1 评论 -
使用taskBus串口操作LORA设备收发消息并获取LORA波形
LORA是一种低功耗物联网协议,最近5年越来越得到业界的关注。正好最近在给taskBus添加串口、原始TCP\UDP三类接口,以便更好的和物联网设备进行M2M交互,这为LORA模块测试提供了便利。采用业余软件无线电平台taskBus的串口模块,可以方便的操作LORA模块,并利用USRP 记录波形。借助OCTAVE,进行相位差分,获得了LORA的线性调频图案。原创 2024-10-08 08:45:00 · 844 阅读 · 0 评论 -
基于准静态自适应环型缓存器(QSARC)的taskBus万兆吞吐实现
准静态自适应环形缓存器(Quasi-Static Adaptive Ring Cache)是taskBus用于数据吞吐的软件技术。使用该缓存器,基于EPDR的业余软线无线电平台taskBus可在Linux 系统 i7 6700K 4GHz下达到3GBps(24Gbps)的总交换能力。该交换能力被各个通道均分,共同支撑taskBus平台按照工程的连接关系,把各个生产者产出的数据包及时、完整、有序地输送给消费者。当然,这种架构存在木桶效应,且仍旧距离挑战吞吐能力极限有很大距离。原创 2024-09-08 20:26:34 · 1253 阅读 · 1 评论 -
taskBus的设计局限和吞吐能力测试
在前文中,我们介绍了EPDR,以及使用该技术驱动的taskBus。已有玩家通过踩坑证明,进程管道交换数据时间延迟大,构造时间敏感系统难。除非采用传统的紧耦合设计及更大的颗粒度,否则很难在期望的时刻执行正确的动作。为了不给读者造成困扰和不必要的尝试,通过此文明确这个技术以及相应平台的局限,并给出可能满足上述需求的解决构想。经过测试,最佳成绩在 i7-10700U 笔记本上达到,整体吞吐3GBps,单路1.2GBps,平均延迟2ms。原创 2024-08-23 11:35:54 · 1242 阅读 · 1 评论 -
为taskBus业余软件无线电平台完善自启动和自动运行功能
taskBus是一款我和朋友们一起开发的业余软件无线电平台。因为很懒,一直以来,运行一个tbj文件,都需要打开、运行这些步骤。若要自动运行,需要依靠命令行模式的 taskbusConsole来执行。其实,想要GUI程序通过命令行打开文件,也是最基础的操作。但是这个功能竟然一直都没有实现。今天,就来实现一下。原创 2024-07-19 10:10:12 · 1371 阅读 · 0 评论 -
使用RTL-SDR及USRP B210在业余软件无线电平台taskBus绘制船舶AIS广播
在业余软件无线电领域,比较入门的玩家也能通过等成品软件收听广播、接收飞机、船舶的位置。但是,这些软件对具体的算法的封装往往很深,编译起来依赖项巨多,让我们搞不清楚究竟是怎么实现的。本文通过改造两个C/C++开源代码,基于Qt的自建业余软件无线电软件taskBus和自建的地图引擎qplanetosm实现从波形接收到地图绘制的全栈流程。在河道进行测试,可以顺利接收小船的AIS。原创 2024-07-01 09:15:00 · 1351 阅读 · 0 评论 -
编写工具调用windeployqt+ldd为msys2 Qt应用程序生成完整发布包
在msys2环境下,想找齐Qt程序依赖的库非常繁琐。本文开发一个Qt工具,在msys2开发模式下,帮助程序员快速生成一个绿色版的完整发布包。该工具首先调用windeployqt找齐Qt的直接依赖,而后递归调用ldd,为每个库找齐依赖树。使用该工具,可以立即发布绿色版的msys2应用包。原创 2024-06-17 10:45:00 · 1377 阅读 · 0 评论 -
使用 MSYS2 Qt6 发布绿色版的SDR软件无线电应用
当您使用Qt创建Windows应用程序时,您通常需要将一些Qt库和其他依赖项打包到您的应用程序中,以确保在其他计算机上运行时具有所需的依赖项。由于特别喜欢路径无关的绿色软件,自己总想着找个办法,使得SDR程序拷贝到一个崭新的计算机上直接可以点开运行,并驱动我的山寨USRP B205mini。本文介绍实现这一技术的思路和细节。原创 2024-05-10 10:30:00 · 2683 阅读 · 0 评论 -
解决 MSYS2 Qt 6.7 默认 stylesheet 在 windows 11 下的显示故障
MSYS2 升级到 Qt6.7.0,发现显示故障,所有Qt6程序以及 QtCreator的SpinBox都显示不全,Combox的底色不对。使用Qt的命令行选项--style fusion 可以选择其他主体暂时绕过该 BUG原创 2024-04-13 19:33:21 · 719 阅读 · 0 评论 -
开源玩具总动员-本博客的知识关系图
作为一个非全职编程爱好者,基本是把计算机周边当做高档大玩具来玩的,顺便带着有兴趣的学生搞一搞学习。这篇文章作为全站的一个导航篇,把本博客的主干要点汇聚一下。原创 2024-03-06 20:56:19 · 1100 阅读 · 1 评论 -
使用 C++23 协程实现第一个 co_yield 同步风格调用接口--Qt计算排列组合
在C++23的协程特性里, co_yield 用于从协程执行过程中返回值。这个功能乍一听起来很奇怪,网上的例子大多是用一个计数器来演示多次中断协程函数,返回顺序的计数值。这看起来毫无意义。其实这个功能主要想演示的就是协程 co_yield 具备打断一个函数的执行,并多次返回值的能力。这种能力允许实现一种隐式状态机,每次使用时,返回下一个状态。这对于极为复杂的状态计算来说,是很有用的。它(协程)避免了显式的设置状态记忆句柄,大大简化了实现难度。原创 2024-02-26 06:50:25 · 848 阅读 · 0 评论 -
使用 C++23 协程实现第一个 co_await 同步风格调用接口--Qt计算文件哈希值
C++加入了协程 coroutine的特性,一直没有动手实现过。看了网上很多文章,已经了解了协程作为“可被中断和恢复的函数”的一系列特点。在学习过程中,我发现大多数网上的例子,要不就是在main()函数的控制台程序里演示yeild,await, resume的特性,要不就是讲述很多概念,很少有演示协程究竟如何把异步变成同步调用的。本次,我们就通过一个简单的计算文件哈希值的例子,来演示如何进行协程操作。原创 2024-02-22 13:15:02 · 1893 阅读 · 0 评论 -
QCoro: Qt C++ 20 协程库介绍
C++20 推出了协程的实现(协程是一种线程内的快速执行序切换功能,比回调函数调用起来要简单。是 Qt 的一个协程库,利用C++20的特性,可以显著简化以前用信号-槽回调才能完成的操作。代码可从下载。原创 2024-02-03 19:24:46 · 4163 阅读 · 0 评论 -
Qt Desktop Widgets 控件绘图原理逐步分析拆解
Qt的一个风格按钮的点线面是如何绘制到屏幕上的呢?我们通过详细阅读Qt6.6源码,感受一下Qt从0开始做轮子的绘图过程。这种实现完全可以作为操作系统的GUI部分而存在,正如Qt本就是KDE桌面的基础工具链。原创 2023-12-10 20:52:57 · 1583 阅读 · 0 评论 -
使用MSYS2的静态Qt版本进行Widgets项目编译时需要注意的问题
需要编译一个静态版本的应用程序,并用upx进行压缩,以便减少携带的动态链接库,生成每个文件不超过10MB的轻量级绿色发布包。使用动态库不利于发布。准备发布的环境,是学校的教学中心的学生计算机。学生计算机的每一台机器都可能安装有不同版本的Qt,且时常污染环境变量(PATH),导致链接了其他版本Qt的程序启动时遇到问题。不能为每一种Qt发布包编译一个发行版。本文介绍使用msys2编译静态Qt6程序的注意事项。原创 2023-10-29 14:39:36 · 775 阅读 · 0 评论 -
Qt Signals & Slots VS QEvents - Qt跨线程异步操作性能测试与选取建议
Qt跨线程异步消息用信号-槽还是Event?他们与直接函数调用的性能比较如何?我们通过对taskBus实时性改造中遇到的测试进行讲解,对比信号-槽与事件机制在多线程POSTMsg上的性能差异。尤其是范例代码对1-多、多-1的信号-槽连接分别进行测试。测试发现,事件调用的开销与单线程直接调用几乎一样。单点信号-槽调用性能是直接调用的50~80%左右,若槽很多,则性能直线下降。原创 2023-10-23 21:54:25 · 532 阅读 · 0 评论 -
避免滥用Qt信号与槽——改进taskBus 平台以吞吐20M IQ采样带宽
软件无线电平台是一款依靠 stdin-stdout进行数据吞吐的教学平台。在平台创建之初,主要使用 RTL-SDR进行简单的窄带接收应用,并没有考虑采样率超过1.8M的情况。引入 USRP B210/B205mini后,采样率瞬间提高到2M以上,此时,使用信号与槽进行吞吐时,性能问题就暴露无遗了。本文详细介绍如何该平台的实现问题,以及补救策略。补救后,双路可直接吞吐20MHz采样率的16bit IQ信号。2024年,经过专门测试,理想吞吐率在i7处理器上达到3GBps,文章尾部含有链接。原创 2023-06-24 20:33:52 · 1597 阅读 · 0 评论 -
基于Qt WebEngine 的Web仪器面板GUI程控技术
随着IIoT的发展,很多工业仪器也具备了远程管理的GUI。与早期使用串口进行命令交互不同,这些GUI可以直接在远程呈现数据。作为希望对仪器、软件进行二次开发的小公司来说,会遇到GUI人工操作转自动化的需求。在无法通过串口等传统接口进行自动操作的情况下,就只能考虑GUI自动化。在现场工程师领域,常见的GUI自动化程控技术主要分native界面与Web界面两类。用QtWebEngine可以非常从容地应对Web GUI自动化。原创 2023-03-09 13:47:49 · 2409 阅读 · 0 评论 -
现场工程师出手-PCAPHub与云SSH隧道稳妥实现异地LAN IIoT联测
在传统制造业、互联网,以及所有和工程相关的领域,都会生长着一类非常硬核的攻城狮。他们不仅是行业全栈工程师,又具有非常丰富的现场经验——编程、电气、电子、万用表、电烙铁都能来上两招。具备这种“急诊医生”能力的技术人员,有正规的定义,叫做“现场工程师”。本案例就介绍现场工程师的应变,通过PCAPHub与云虚拟机,实现甲方、乙方异地交换机的逻辑直通。在文章的最后,还会讨论现场工程师的能力与素质。原创 2023-01-20 13:52:31 · 1294 阅读 · 0 评论 -
EthernetOnTCP--基于Qt QSslSocket 套接字在PCAP 集线器上实现以太网隧道
我们使用PCAP建立了本地的软件集线器(Hub)。考虑到较远距离的跨车间调试,有必要使用Tcp连接构造一个以太网的隧道,使得两个车间之间的调试设备可以虚拟的连接在一个Hub上。使用QSslSocket可以方便的实现这个功能。同时,通过控制回放的范围,可以精确控制PCAPHub工作在交换机-集线器的混合模式下。原创 2023-01-14 17:18:53 · 1069 阅读 · 2 评论 -
基于PCAP搭建软HUB实现物联网在线调试
在调试嵌入式物联设备时,尤其是在多个以太网物联设备交错通信的情况下,很难通过在捉襟见肘的嵌入式系统上进行数据记录与调试。如果设备连接的是交换机,在空闲端口是无法看到所有其他端口上的数据的(广播除外)。PCAPHub基于PCAP,构建了一个软集线器。进行调试时,把待调试的工业设备从工业交换机断开,并临时接入在调试工作站的网卡上。这样,就可以用Wireshark抓到所有参与调试的设备数据。原创 2023-01-09 07:45:00 · 967 阅读 · 0 评论 -
你好2023-使用msys64 openssl 制作QSslSocket实验所需证书
2023年开始了,第一篇,记录最近帮朋友制作QSslSocket所需证书的过程。使用传统的TCP连接依旧是很多工业软件的常见通信方法。但如果恰好不希望别人通过抓包等方法研究上位机和控制器模块之间的协议格式,那使用SSL连接是一种掩耳盗铃的好办法,能够抵御不是很执着的逆向行为。SSL一般可以通过openssl实现,这样即使是嵌入式设备里也有类似的支持。QSslSocket非常平顺的保留了所有的易用性,让一般的硬件作坊也能碰一碰SSL和网络编程。原创 2023-01-01 09:55:29 · 997 阅读 · 0 评论 -
使用 Qt for Android 获取并利用手机传感器数据(下篇)使用C++实现功能
在上一篇,我们搭建了开发环境。本篇,使用C++代码真正实现Android功能。我们使用UDP协议从手机上指定发送的目的地、端口。我们建立一个Qt的Widgets程序,添加 position, sensors模块。枚举传感器并建立界面,通过Qt的Sensors可以枚举到传感器的取值。原创 2022-12-03 17:58:41 · 3302 阅读 · 4 评论 -
使用 Qt for Android 获取并利用手机传感器数据(上篇)开发环境省心搭建
现代手机拥有许多传感器,包括地磁、姿态、GPS、光照、温度、气压、摄像、声音、电磁等,完全就是一个高度集成的科学仪器。不夸张的说,一部手机加上一个外围的计算机和控制系统,做一个功能较强的自主移动机器人并不是不可能。但是,很多APP都只是局限于自身的功能,并不喜欢把传感器数据泵出来给其他设备分享。即使有,也是收费的。有没有可能自己做一个小APP,获得所有的手机传感器数据,榨干手机的感知能力呢?实际上实现起来并不困难,甚至连界面都不需要。笔者准备涉足一下从未实操过的App开发,把旧手机的传感器数据分享出来。原创 2022-12-01 21:59:20 · 4778 阅读 · 0 评论 -
使用Qt轻量的QTextBrowser为taskBus SDR显示丰富的图文帮助
最近准备为软件无线电平台添加集成文档功能。毕竟模块变多了之后,简单一页纸的小文档对正确想起来如何使用模块功能意义很大。对于一款极简的轻量级SDR产品,我们希望taskBus的文档继续保持极简的风格,支持txt纯文本、简易Markdown和本地html。QTextBrowser是一款轻量但强大的本地富文本显示控件,本文介绍这种控件在帮助文档浏览中的运用。原创 2022-11-05 19:39:48 · 1979 阅读 · 0 评论 -
使用C语言+USRP B210从零开始实现无线通信(1) 基本情况介绍
近期,有同学成功使用taskBus进行AM/FM广播的收发,并提出了问题:有没有可能简单几步就实现数据传输呢?答案是肯定的。只要能传声音,那一定能传数据。不但如此,如果不考虑带宽、效率,在稳定的实验室环境下,实现起来很简单。本系列文章,我们带大家抛开GNURadio里现成的通信模块(如GSM),从零开始,一句句构造最简无线网络,实现双向数据互通。原创 2022-09-06 10:15:00 · 3202 阅读 · 0 评论 -
谁删了服务器?谈VC源码字符集和回车换行注意事项
在Windows Visual C/C++编程时,经常需要从Github或者其他既有项目中“借鉴”(呵呵哒)一些代码过来。这个时候,就要格外注意字符集和回车换行带来的编译问题。这类编译问题造成的错误千奇百怪,可能在编译时、链接时,甚至运行时造成困扰。尤其是运行时,很难发现,在极其倒霉的时候,会造成删库跑路或者惨痛的事故。原创 2022-08-24 21:35:39 · 635 阅读 · 0 评论 -
使用MSYS2和UPX显著缩小发布文件体积
对于经常发布桌面应用程序的攻城狮而言,当然希望自己的程序只要一个可执行文件,拷贝到任何位置直接双击就能运行啦。比如笔者,经常使用MSYS2 里的mingw64 Qt静态编译程序,以便只要一个可执行文件就能到处运行。以前,我用MFC静态编译很香。换成Qt后,感觉静态编译出来的程序,体积出乎意料的大,有的一个EXE文件就有20MB。用了UPX后,可以获得20%的高压缩率!...原创 2022-08-18 23:42:03 · 472 阅读 · 0 评论 -
【已解决】MSYS2 QtCreator Clangd 代码分析找不到 mm_malloc.h的问题补救
近期学校的机房里升级了msys2,遇到了QtCreator的代码提示"In include file : 'mm_malloc.h' file not found"问题,不算完全解决,因为要上课,采用了临时的补救方法。原创 2022-07-30 19:50:44 · 1626 阅读 · 1 评论 -
机器学习小试(11)验证码识别测试-使用Qt与Tensorflow2进行深度学习实验
由于非常熟悉nativeC开发,学习Python的过程中还老是忘不了Qt,准备用Qt产生训练样本。而后,使用Qt的GUI在后台调用python进行实验。实验使用Tensorflow2 可以有效的识别生成的验证码的文字。原创 2022-07-22 10:44:42 · 1201 阅读 · 0 评论