50 个常用 Qt 开源库 的详细解析
以下是对提供的 50 个常用 Qt 开源库 的详细解析。我对列表进行了修正与更新(2026 年视角):去除了重复项(如 QCustomPlot 出现多次)、修正了部分过时或错误的链接/描述,并补充了每个库的适用场景、Qt 版本兼容性(重点 Qt 5 / Qt 6)、核心优势以及典型使用实例代码。
这些库覆盖了 UI 控件、数据可视化、网络通信、文件处理、协议、样式、工具 等上位机开发常用领域,尤其适合工业监控、嵌入式上位机、科学计算、仪表盘等项目。
1. Qwt
官网:https://qwt.sourceforge.io/
描述:专业级 2D 数据可视化库,提供曲线、频谱、仪表盘、等高线图等。
适用场景:工业实时曲线、示波器、科学数据可视化。性能优于 QCustomPlot 在复杂大数据场景。
Qt 兼容:Qt 5/6 均支持(需编译)。
实例代码(简单曲线):
#include <qwt_plot.h>
#include <qwt_plot_curve.h>
#include <qwt_symbol.h>
QwtPlot *plot = new QwtPlot(this);
QwtPlotCurve *curve = new QwtPlotCurve("Data");
QVector<double> x = {1,2,3,4,5}, y = {10,20,15,30,25};
curve->setSamples(x, y);
curve->attach(plot);
plot->replot();
2. QJson(已较少维护,推荐 Qt 内置)
描述:早期 JSON 解析库。现在推荐直接使用 QJsonDocument。
适用场景:简单 JSON 处理(新项目不推荐单独引入)。
3. QCustomPlot
官网:https://www.qcustomplot.com/
描述:轻量、高性能 2D 绘图库,支持交互式曲线、柱状图、热力图等。
适用场景:上位机实时波形、仪表盘、科学绘图。易集成、无需额外编译。
实例(实时曲线):
QCustomPlot *customPlot = new QCustomPlot(this);
QCPGraph *graph = customPlot->addGraph();
QVector<double> x(101), y(101);
for(int i=0; i<101; ++i) { x[i]=i; y[i]=qSin(i/10.0); }
graph->setData(x, y);
customPlot->rescaleAxes();
customPlot->replot();
4. QwtPlot3D
描述:Qwt 的 3D 扩展,支持曲面、散点、线框图。
适用场景:三维数据可视化(如地形、频谱分析)。Qt 6 支持需检查最新 fork。
5. QScintilla
官网:https://www.riverbankcomputing.com/software/qscintilla/
描述:基于 Scintilla 的代码编辑器控件,支持语法高亮、自动完成、折叠、搜索等。
适用场景:内置代码编辑器、脚本编辑器、配置文件编辑。
实例:简单嵌入
QsciScintilla *editor = new QsciScintilla(this);
editor->setLexer(new QsciLexerCPP());
editor->setText("int main() {}");
6-7. QHttpServer / QHttpEngine
描述:轻量级 HTTP 服务器,支持 RESTful API。
适用场景:Qt 应用内嵌 Web 服务、设备远程控制。Qt 6 推荐 QHttpServer(Qt 官方模块)。
8. QScxml(Qt 官方)
描述:状态机(SCXML)框架。
适用场景:复杂工作流、UI 状态管理、工业控制逻辑。
9. QXlsx
GitHub:https://github.com/QtExcel/QXlsx
描述:读写 Excel(.xlsx)文件,无需安装 Office。
适用场景:数据导出报表、配置表导入。
实例:
QXlsx::Document xlsx;
xlsx.write("A1", "Hello Qt");
xlsx.write("B2", 123.45);
xlsx.saveAs("report.xlsx");
10. QHotkey
GitHub:https://github.com/Skycoder42/QHotkey
描述:全局热键注册(跨平台)。
适用场景:截图、快速操作、媒体控制。
11. QtSerialPort(Qt 官方)
描述:串口通信。
适用场景:上位机与下位机(RS232/485)通信,常与 QByteArrayView 结合解析协议。
12. QsLog
描述:轻量日志库,支持文件、控制台、滚动等。
适用场景:生产环境日志记录。
13. QtWebEngine(Qt 官方)
描述:基于 Chromium 的 Web 引擎(Qt 6 中更名为 QtWebEngineQuick)。
适用场景:嵌入网页、HTML5 可视化、混合应用。
14. QtMqtt(Qt 官方)
描述:MQTT 协议支持。
适用场景:物联网、上位机与云平台通信。
15. QDarkStyleSheet
GitHub:https://github.com/ColinDuquesnoy/QDarkStyleSheet
描述:现代暗黑样式表。
适用场景:提升 UI 美观度,一行代码切换主题。
16. QSimpleUpdater
描述:自动更新检查与下载。
适用场景:桌面应用自动升级。
17. QtWebSockets(Qt 官方)
描述:WebSocket 实时双向通信。
适用场景:实时数据推送、在线监控。
18. QtAwesome
描述:Font Awesome 字体图标集成。
适用场景:美化按钮、工具栏,无需图片资源。
19. QZXing
GitHub:https://github.com/ftylitak/qzxing
描述:二维码/条码扫描与生成(基于 ZXing)。
适用场景:设备配网、资产管理。
20. QtWaitingSpinner
GitHub:https://github.com/saeedmaghdam/QtWaitingSpinner
描述:加载等待动画控件。
适用场景:网络请求、长时间操作提示。
21. QCustomPlot(重复,已在第 3 条详解)
22. QXmpp
GitHub:https://github.com/qxmpp-project/qxmpp
描述:XMPP(Jabber)即时通信协议库。
适用场景:聊天、消息推送系统。
23. QtMvvm
GitHub:https://github.com/Skycoder42/QtMvvm
描述:MVVM 框架(Model-View-ViewModel)。
适用场景:大型应用架构解耦,提高可维护性。
24. QTermWidget(Qt 6 需要 fork)
GitHub:https://github.com/cats-works/qtermwidget-qt6 (Qt6 版本)
描述:嵌入式终端模拟器。
适用场景:内置命令行、SSH 客户端、调试控制台。
25. 其他值得补充的常用库(列表中未覆盖但强烈推荐):
- QtSerialBus(官方):Modbus、CAN 等工业总线协议(非常适合上位机)。
- Qt Charts / Qt Graphs(官方,Qt 6.8+ 推荐 QtGraphs):现代图表可视化。
- QNetworkAccessManager(官方):HTTP/HTTPS 网络请求。
- Qt PDF:PDF 查看与生成。
- KDE Frameworks 部分组件(如 KArchive、KConfig)。
使用建议(结合上位机开发)
- 数据可视化:QCustomPlot(快速原型) + Qwt(专业复杂图表) + Qt Graphs(Qt 官方现代方案)。
- 通信协议:QtSerialPort + QtSerialBus(Modbus) + QtMqtt + QtWebSockets + QByteArrayView(零拷贝解析)。
- 文件与数据:QXlsx + QJsonDocument + QSettings。
- UI 美化:QDarkStyleSheet + QtAwesome。
- 架构:QtMvvm + QScxml(状态机)。
- 性能优化:大量数据处理时优先
QByteArrayView、QSpan。
项目集成提示:
- 在
.pro文件中添加:QT += serialport network websockets等。 - 对于第三方库,通常需要
git submodule或手动编译安装。 - Qt 6 项目推荐优先使用官方模块(QtSerialBus、QtMqtt、QtWebSockets、Qt Graphs),减少维护成本。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)