以下是对提供的 50 个常用 Qt 开源库 的详细解析。我对列表进行了修正与更新(2026 年视角):去除了重复项(如 QCustomPlot 出现多次)、修正了部分过时或错误的链接/描述,并补充了每个库的适用场景、Qt 版本兼容性(重点 Qt 5 / Qt 6)、核心优势以及典型使用实例代码。
这些库覆盖了 UI 控件、数据可视化、网络通信、文件处理、协议、样式、工具 等上位机开发常用领域,尤其适合工业监控、嵌入式上位机、科学计算、仪表盘等项目。
1. Qwt
官网:https://qwt.sourceforge.io/描述:专业级 2D 数据可视化库,提供曲线、频谱、仪表盘、等高线图等。适用场景:工业实时曲线、示波器、科学数据可视化。性能优于 QCustomPlot 在复杂大数据场景。Qt 兼容:Qt 5/6 均支持(需编译)。实例代码(简单曲线):
#include
#include
#include
QwtPlot *plot = new QwtPlot(this);
QwtPlotCurve *curve = new QwtPlotCurve("Data");
QVector
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
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),减少维护成本。