一些Qt第三方语言绑定库

Qt API是基于C++实现的,并且提供了额外的特性来简化跨平台开发。整理了一些第三方语言绑定库有Python, Go, Node.js等语言。但是只有Python(PySide2)语言绑定库是由Qt官方维护。快来看看有没有你熟悉的语言吧。

1.Qt官方语言绑定库

序号 语言绑定库
1 PySide2(官方维护)
  • 介绍:使用Qt为Python创建用户界面。Qt for Python是一个项目,它提供了一组官方的Python绑定(PySide2),这些绑定将增强您的Python应用程序。PySide2模块的第一个官方版本现在已经发布了!目前最新支持Qt 5.12版本于2018年12月正式发布。
  • 地址
    1
    https://www.qt.io/qt-for-python

2.第三方语言绑定库

序号 语言绑定库
1 PyQt
2 Go
3 Node.js
4 C#/Mono/.Net
5 D
6 Ring
7 Rust
8 Crystal
9 Haskell
10 Julia
11 OCaml
12 nelson

2.1 Qt for Python (PyQt)

  • 介绍:PyQt是一组Python v2和v3绑定,用于Qt公司的Qt应用程序框架,运行在Qt支持的所有平台上,包括Windows、OS X、Linux、iOS和Android。PyQt5支持Qt v5。PyQt4支持Qt v4,并将构建Qt v5。绑定是作为一组Python模块实现的,包含1000多个类。
  • 地址
    1
    http://www.riverbankcomputing.com/news

2.2 Qt for Go (qt)

  • 介绍:Qt绑定用于Go (Golang),支持Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly
  • 地址
    1
    https://github.com/therecipe/qt

2.3 Qt Quick for Node.js (Brig)

  • 介绍:一个用于Node的用户界面工具包。它是基于Qt进行渲染的。这个项目可以用来加载和播放QML文件,使它有可能有一个简单的方式来沟通QML和Node.js之间的桌面应用程序。
  • 地址
    1
    https://github.com/BrigJS/brig

2.4.1 Qt for C#/Mono/.Net (QtSharp)

  • 介绍:这个项目目的是创建Mono/.NET库封装Qt,从而通过C#来使用它。它基于优秀的CppSharp。
  • 注意:QtSharp只对Qt for MinGW和Qt的内置MinGW设置进行了测试。
  • 地址
    1
    https://gitlab.com/ddobrev/QtSharp

2.4.2 Qt for C#/Mono/.Net (Qml.Net)

  • 介绍:使用Qml在.Net中构建跨平台的桌面应用程序。
  • 地址
    1
    https://github.com/qmlnet/qmlnet

2.5 Qt for D (QtE5)

  • 介绍:QtE5是基于qt的库,提供了从D和c++轻松访问Qt-5的功能。它使用动态Qt5加载和一组预定义的槽,允许您不使用元编译程序。要编译和执行一个应用程序,只需要Qt中的QtE5和一些DLL/SO就足够了,不需要安装Qt。
  • 地址
    1
    https://github.com/MGWL/QtE5

2.6 Qt for Ring (RingQt)

  • 介绍:使用RingQt进行桌面和移动开发。
  • 地址
    1
    http://ring-lang.sourceforge.net/doc/qt.html

2.7.1 Qt for Rust (Rust-Qt)

  • 介绍:用于Rust语言的Qt绑定库。
  • 地址
    1
    https://github.com/rust-qt

2.7.2 Qt Quick for Rust (qml-rust)

  • 介绍:Qt Quick的Rust绑定库。QML库的绑定基于DOtherSide C绑定,与其他基于该库的绑定基本兼容。
  • 注意:缺少一些次要的特性,并且有相当多的bug。
  • 地址
    1
    https://github.com/White-Oak/qml-rust

2.7.3 Qt Quick for Rust (qmlrs)

  • 介绍:qmlrs允许使用来自Rust的Qml/QtQuick代码Rust代码可以使用加载的Qml脚本创建QtQuick引擎(QQmlApplicationEngine)Qml代码可以调用Rust函数。
  • 注意:有一定的局限性。该库安全性不能保证。
  • 地址
    1
    https://github.com/flanfly/qmlrs

2.8 Qt for Crystal (qt5.cr)

  • 介绍:基于Bindgen的Crystal的Qt5绑定。
  • 注意:可用的Qt版本: Qt 5.5到Qt 5.10。
  • 地址
    1
    https://github.com/Papierkorb/qt5.cr

2.9.1 Qt for Haskell (qtHaskell)

  • 介绍:qtHaskell是Trolltech ASA为Qt小部件库提供的一组Haskell绑定。Haskell程序员现在可以访问Qt信号和槽接口逻辑,使用Qt Designer设计接口和Qt ECMA/Javascript引擎编写脚本化应用程序。
  • 地址
    1
    http://www.isptech.co.uk/qtHaskell/index.html

2.9.2 Qt for Haskell (Qtah)

  • 介绍:Qtah项目是一组用于Haskell的Qt绑定,提供了一个成熟GUI工具包的传统命令式接口。
  • 地址
    1
    https://gitlab.com/khumba/qtah

2.9.3 Qt Quick for Haskell (HsQML)

  • 介绍:HsQML是一个与Qt Quick的Haskell绑定的库。HsQML允许您将用QML编写的前端设计与用Haskell编写的后端逻辑绑定在一起,从而使用两者的优势创建完整的应用程序。
  • 地址
    1
    https://www.gekkou.co.uk/software/hsqml/

2.10 Qt for Julia (QML.jl)

  • 介绍:为Julia程序构建Qt5 QML接口。
  • 地址
    1
    https://github.com/barche/QML.jl

2.11 Qt Quick for OCaml (lablqml)

  • 介绍:QML绑定到OCaml。
  • 注意:使用与Qt 5.3版本以上。
  • 地址
    1
    https://github.com/Kakadu/lablqml

2.12 QML for Nelson (nelson)

  • 介绍:Nelson是一种数组编程语言,使用现代C/ c++库和其他最先进的数字库为工程和科学应用程序提供了强大的开放计算环境。QML引擎使nelson程序能够使用Qt的QML框架显示和操作图形化内容。
  • 地址
    1
    https://github.com/Nelson-numerical-software/nelson