Skip to content

Qt

Awesome Qt Awesome

> 精选的 Qt 框架工具、库和资源列表.

Qt 是一个强大的跨平台应用程序开发框架,主要(但不限于)在 C++ 中使用. 它非常适合 GUI 应用程序,但也可用于许多其他用途.

欢迎投稿!

Conventions

  • 任何带有 OctoCat :octocat: 的列表项都有一个 GitHub 存储库或组织; 点击查看源代码!
  • 列出带有此 📦 图标的项目具有在别处托管的源代码.

Official Resources

Communities

如果你盖了,他们会来的. 本节描述了彼此共享知识和代码的 Qt 用户的集合. 本节列出了最受欢迎和最活跃的社区,但您可以找到更全面的列表 here (包括其他语言的几种语言)如果您愿意的话.

Official

  • Mailing Lists - 面向 Qt 用户和开发人员的邮件列表. 可以说是与 Qt 的维护者直接交流的最佳场所. 看到频繁的活动.
  • Qt Forum - 如果您不喜欢电子邮件,那么您也可以考虑在论坛上寻求帮助或分享知识.
  • Qt Wiki - 用户提供的 Qt 知识的主要来源.
  • IRC - For real-time chat with other Qt developers and users. The most popular channels are on Freenode, and include #qt, #qt-quick, #qt-creator, and #qt-chat.
  • 有关 Qt 相关 IRC 频道的完整列表,请参阅 here.
  • 请注意,链接的网络聊天客户端不是 Qt 项目的一部分,由该列表的作者提供,仅为了方便起见. 这些频道可以通过任何 IRC 客户端访问.

Unofficial

Tools

一个好的开发人员编写他或她自己的工具. 一个伟大的人使用别人写的工具. 本节将帮助您变得出色; 更正式地说,本节详细介绍了可以更轻松地使用 Qt 创建软件的应用程序. 您可能还对以下内容感兴趣 Libraries 部分.

Official Tools

Qt 框架有很多工具没有引起人们的注意. 本节介绍他们(以及这样做的明星球员). 出于本节的目的,“工具”是指以 Qt 为中心的实用程序,其代码不会嵌入到您的应用程序中(但它们的输出可能).

  • Qt Creator :octocat: - Qt 绝不会将您锁定在其提供的 IDE 中,但它与框架的牢固集成使其很畅销. 除其他外,它还提供了 UI 设计器、建模工具、文档浏览器和强大的 QML 支持(如果您喜欢这类东西). 还有一个插件系统,但不幸的是第三方插件很少.
  • Qt Designer :octocat: - 如果您只想设计界面并让其他人将它们与逻辑挂钩,则 GUI 设计器可作为单独的应用程序使用.
  • Qt Assistant :octocat: - 就此而言,文档查看器也是如此.
  • Qt Visual Studio Add-in :octocat: - 如果您更愿意坚持使用 Visual Studio,此加载项可让您做到这一点.
  • Qt Linguist :octocat: - Qt 提供出色的国际化/本地化支持,该工具对此负有很大责任. 使用特殊宏在您的代码中编写可翻译的字符串,此工具将为您汇总所有这些字符串,以便您或您的翻译人员可以扩大您的软件的受众.
  • Qt Installer Framework :octocat: - 似乎没有人谈论这个,但 Qt 也提供了一种为您的应用程序编写安装程序的方法. 不支持创建 macOS 磁盘映像、应用程序包或 Linux 包,因此在考虑项目的分发时请注意这一点.
  • macdeployqt :octocat: - 为 Qt 项目生成 macOS 应用程序包.
  • qmake :octocat: - 为 Qt 设计的捆绑构建系统,尽管它可用于非 Qt 项目.
  • qbs :octocat: - 如果 QML 更符合您的风格,请考虑这个替代构建系统.
  • Emulator - 不要忘记 Qt 的移动支持! -qtdiag :octocat: - 打印出大量与您的 Qt 安装和您的系统有关的一般信息的命令行工具. 没有链接,因为没有专门的网页; 只需在命令行上运行 qtdiag 即可. 非常适合故障排除. -qmleasing :octocat: - 让您制作适合 QML 的缓动曲线,但如果您了解基础数学,则没有理由不能在其他地方使用结果数字.

Third-Party Tools

  • CMake :octocat: - 通用的 C++ 构建工具恰好有很好的 Qt 支持.
  • GammaRay :octocat: - 用于 Qt 构建软件的强大调试器和通用检查工具. 允许您检查和操作“QObject”层次结构、查看对象属性、在运行时编辑小部件,等等. 两句话的简介不能说明问题,请认真检查一下.
  • moc-ng :octocat: - 与 Qt 版本二进制兼容的 moc 的替代实现.
  • Qt-Inspector :octocat: - 与 GammaRay 具有相似目标的检查工具,但更简单.
  • SIP 📦 - 为 C 或 C++ 库生成 Python 绑定. 对 Qt 信号和槽有特殊支持,并用于创建 PyQt.
  • linuxdeployqt :octocat: - 允许您将基于 Qt 的应用程序捆绑为 AppDir 或 AppImage , 使其可以交付给许多桌面 Linux 发行版的用户. 类似于官方的 windeployqt 和 macdeployqt 工具,但适用于 Linux.
  • Qompoter - Qt / C++ 的依赖管理器.

Bindings in Other Languages

本节介绍支持使用 C++ 以外的主要语言创建 Qt 软件的软件. 允许在 Qt 应用程序中编写运行时脚本的库列在下面 Integrations.

看这些 these three articles 如果你想要更多.

Libraries

本节介绍两种第三方库; 那些提供自己全新功能的(例如小部件,处理特定文件格式),以及那些提供与现有软件集成的(例如脚本语言,REST API 的客户端,已建立协议的实现).

Integrations

出于本节的目的,以“集成”为中心的库执行以下操作之一:

  1. 作为已建立的 Web 服务的客户端.
  2. 以 Qt 友好的方式包装另一个库,不仅仅是一个实现细节(即它试图模仿包装的 API).

  3. mupdf-qt :octocat: - Qt 包装器 MuPDF PDF 查看器.

  4. neiasound :octocat: - 专为游戏设计的 OpenAL 包装器,带有 stb_vorbislibsndfile 支持.
  5. PythonQt 📦 - 使用 Python 编写您的 Qt 应用程序脚本. 不要混淆 PyQt 或者 PySide.
  6. QScintilla 📦 - 极其通用且可自定义的文本编辑器小部件,提供语法突出显示、代码完成、代码折叠、可记录宏等更多功能. 围绕 Scintilla . 由开发的同一家公司创建 PyQt.
  7. QtAwesome :octocat: - 添加 Font Awesome Qt 应用程序的图标. 也支持其他图标集.
  8. QtLua 📦 - 使用 Lua 作为基于 Qt 的软件的脚本语言.
  9. qtruby :octocat: - 在您的应用程序中使用 Ruby 作为脚本语言.
  10. QuaZIP 📦 - 读取和写入 ZIP 档案. 用途 Minizip 在引擎盖下.
  11. VLC-Qt :octocat: - 包装器 libvlc that lets you add a VLC-like media player to your application.
  12. SCodes :octocat: - Qt & QML 包装器 ZXing-C++ Library 带有现成的 QML 项目,用于解码和生成 1D 和 2D 条形码(又名 QR 码).

New Functionality

  • Communi :octocat: - 跨平台 IRC 框架. 我们已经有足够多的 IRC 客户端了,但我想这也可以用于在您的应用程序中实现聊天功能(例如用于社区支持).
  • cutelyst :octocat: - 从 Perl 的 Catalyst 框架中汲取一些想法的 Web 框架.
  • DiceParser :octocat: - 基于自身语法的 Dice Roller 框架.
  • DOtherSide :octocat: - 在 C 中绑定 QML,主要设计为 其他 语言的 API 以支持 QML.
  • Felgo - 严重依赖 QML 的跨平台游戏引擎和应用程序框架. 有很多工具和资源,甚至应该有自己的清单.
  • glraw :octocat: - 将图像从任何 Qt 支持的格式转换为 OpenGL 格式的纹理. 对于加速图形应用程序中的纹理加载很有用.
  • grantlee :octocat: - 受 Django 启发的文本模板.
  • injeqt :octocat: - Qt 的依赖注入.
  • KDE Frameworks :octocat: 📦 - 用于 KDE 的大量库,但其中许多库也可以与常规 Qt 应用程序一起使用. 在大多数情况下,跨平台.
  • Marble 📦 - 可以独立使用或嵌入其他应用程序中的虚拟地球仪和地图.
  • qgexedit2 :octocat: - 在您的应用程序中嵌入一个十六进制编辑器.
  • qml-material :octocat: - 在 QML 中实现的材料设计.
  • QNodeView :octocat: - 允许您在图形中创建和编辑节点的小部件,类似于 Unreal Engine、Substance Designer 或 PureData 提供的类型.
  • QSimpleUpdater :octocat: - 让您的应用程序自行更新.
  • qt-maybe :octocat: - 类型理论的爱好者会喜欢这些总和类型和可选类型.
  • qt-mustache :octocat: - 使成为 Mustache 模板.
  • QtAV :octocat: - 积极开发多媒体框架.
  • Qtilities :octocat: - 一组功能强大的库,可为您的应用程序提供 GUI、日志记录、测试、配置和项目功能(以及其他功能).
  • QtitanChart - 图表生成框架. 商业的.
  • QtitanRibbon - 对于 Microsoft 在其软件中使用的色带的粉丝. 商业的.
  • qtnotify :octocat: - 通知框架.
  • QtTerminalWidget :octocat: - 让您的应用程序能够任何.
  • QtVerbalExpressions :octocat: - 使用自然的英语表达式创建正则表达式. 的一部分 VerbalExpressions 项目,它为多种语言做同样的事情.
  • qtwebserver :octocat: - 如果您出于某种原因需要在 Qt 中编写 Web 应用程序服务器,这将对您有所帮助.
  • QtXlsx :octocat: - 读写 Microsoft Excel 格式的电子表格.
  • Qwt 📦 - 专为科学和技术应用程序设计的 Qt 小部件.
  • verdigris :octocat: - 编写 Qt 应用程序的实验库使用moc.

Software Repositories

如果 Libraries 部分不满足你,也许其中之一会.

  • #inqlude - 最著名的以 Qt 为中心的库的集合. 包管理器也可用 here.
  • QtPods - 另一个以 Qt 为中心的包管理器. 如果您想在不使用 QtPods 的情况下查看产品,可以使用完整列表 here,并且可以通过提交拉取请求添加到.
  • Linux-Apps.com - 尽管名称如此,但 Linux-Apps.com 为最终用户和开发人员聚合了各种基于 Qt 的工具和库.
  • Stephan Binner's Ubuntu PPAs - 犹豫要在其包管理器之外安装任何东西的 Ubuntu 用户可以从这些存储库中获取任何最新版本的 Qt. 添加它们的说明可在其中找到.

Blogs

Each entry is followed by a standout list of articles, talks, or other resources.

Books

Software that Uses Qt

框架的好坏取决于使用它的软件. 幸运的是,许多优秀的软件都使用 Qt.

  • Autodesk Maya - 3D 动画和设计软件,一直用于为一些最流行的电影和电视节目制作视觉效果.
  • Davinci Resolve - 带有商业计划的非线性视频编辑免费软件,用于制作一些好莱坞电影.
  • CMake :octocat: - 最接近标准 C++ 构建系统的东西. 捆绑的 GUI 使用 Qt.
  • CRYENGINE :octocat: - 但它能运行孤岛危机吗? 一些辅助工具使用 Qt.
  • Doxygen :octocat: - 最流行的 C++ 文档生成器,尽管它也支持其他语言. 捆绑的 GUI 使用 Qt.
  • Google Earth - ** 虚拟地球仪.
  • KDE :octocat: - 最流行的 Linux 桌面环境之一.
  • LMMS - 数字音频工作站.
  • Malwarebytes - 您的 Windows 桌面贴身保镖.
  • MuseScore - 乐谱软件.
  • Parallels Desktop - 以消费者为中心的虚拟化.
  • Qt Creator :octocat: - 吃你自己的狗粮的东西. 列于 official tools, 但不在这里列出感觉不对.
  • Rolisteam :octocat: - 远程角色扮演游戏的虚拟桌面.
  • Shotcut - 视频编辑.
  • RUBE - 适用于任何使用 Box2D 物理引擎的游戏的关卡设计工具.
  • TeamSpeak - 当游戏玩家想在不支持语音聊天的游戏中进行语音聊天时,他们会使用它.
  • Telegram Desktop :octocat: - 如此妥善地保护你的谈话,你会提高潜在窃听者的血压. 桌面客户端使用 Qt 并且是开源的.
  • Tiled :octocat: - Perhaps the world's most popular tilemap editor. Suitable for level design in games.
  • VirtualBox 📦 - 用于 x86/64 处理器的虚拟化软件. 捆绑的 GUI 使用 Qt.
  • VLC 📦 - 现有最灵活的开源视频播放器之一.
  • Vuo :octocat: — 用于交互式媒体的实时可视化编程语言.
  • Wireshark 📦 - 最流行的数据包嗅探器. 你将它用于善而不是恶,对吗?
  • Wolfram Mathematica - 编程语言、符号计算器和工程师最好的朋友.
  • Yabause :octocat: - 世嘉土星模拟器.
  • Ultimaker Cura :octocat: - 用于准备 3D 模型以使用 3D 打印机打印的切片器应用程序. 使用基于 Qt 5 和 Python 3 的 Uranium 框架构建.

还有一个官方陈列室 here,它允许开发人员提交他们自己的 Qt 驱动的应用程序以供展示.

Other Relevant Awesome Lists

如果您熟悉 Awesome,您就会知道有极其广泛的资源,其有用性将取决于您的项目. 但是,如果您正在开发 Qt 应用程序,您几乎肯定也想看看这些.

  • Awesome C/C++ - 没有理由不能使用不是为 Qt 设计的 C++ 库. 有时它们甚至可能比 Qt 提供的更适合您的需求.
  • Awesome C - C 库也是如此; 您可能想温习一下这些 RAII 技术.
  • Awesome CMake - 如果您的项目没有使用 qmake,您可能正在使用 CMake.
  • Awesome OpenGL - Qt 通常用于图形应用程序,甚至围绕 OpenGL 提供自己的包装器.

License

CC0

在法律允许的范围内, Jesse Talavera-Greenberg 已放弃该作品的所有版权和相关或邻接权. 见 https://github.com/JesseTG/awesome-qt/blob/master/LICENSE 文件的详细信息.