以下是对提供的 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(状态机)。
  • 性能优化:大量数据处理时优先 QByteArrayViewQSpan

项目集成提示

  • .pro 文件中添加:QT += serialport network websockets 等。
  • 对于第三方库,通常需要 git submodule 或手动编译安装。
  • Qt 6 项目推荐优先使用官方模块(QtSerialBus、QtMqtt、QtWebSockets、Qt Graphs),减少维护成本。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐