Category:LanguageBindings

From Qt Wiki
Jump to: navigation, search

Programming Language Support & Language Bindings

The Qt API is implemented in C++, and provides additional features for easier cross-platform development. QML – introduced with Qt Quick is a CSS and JavaScript-like declarative, language designed to describe the user interface of a program: both what it looks like, and how it behaves. Bindings to Qt exist for several other languages, including Ada, Pascal, Perl, PHP, Ruby, Python and Java™.

C++ Development with Qt

Qt provides an intuitive C++ class library with a rich set of application build blocks for C++ development. Qt goes beyond C++ in the areas of inter-object communication and flexibility for advanced GUI development. Qt adds the following features to C+:

QML Development with Qt Quick

QML is a declarative, JavaScript-based language designed to describe the user interface of a program: both what it looks like, and how it behaves. In QML, a user interface is specified as a tree of objects with properties.

  • JavaScript, HTML and CSS skills can be used to code complete apps
  • Optimized for touch-based, animated mobile UIs
  • Includes a set of graphical and behavioral building blocks: "QML Elements ":http://doc.qt.nokia.com/4.7/qdeclarativeelements.html
  • No C++ knowledge required for UI creation, but can be extended with C++

"Find out more about Qt Quick":http://doc.qt.nokia.com/4.7/qdeclarativeintroduction.html

These are third party language bindings for Qt

"PySide: Python for Qt":http://www.pyside.org (LGPL)

"PyQt":http://www.riverbankcomputing.com/news (GPL 3/commercial)

"Qt for Java":http://qt.gitorious.org/qt-jambi (QtJambi, Windows/Mac/Linux)

Qt Jambi – Qt bindings to the Java programming language – is maintained by the community. You can find more information from http://qt-jambi.org.

"Qt for Ruby":http://techbase.kde.org/Development/Languages/Ruby (QtRuby)

The project provides complete bindings to both the KDE API and the Qt APIs. The Korundum package includes both a QtRuby Qt-only binding along with the full combined Qt/KDE one. The QtRuby package contains just Qt bindings with no dependencies on KDE.

"Qt for BASIC":http://www.kbasic.com/ (KBasic)

KBasic uses Qt as its toolkit to provide cross-platform abilities. KBasic is a further BASIC dialect and is related to VB.NET™, Visual Basic®, Visual Basic for Application® and Java™. It combines several features and includes built-in backward support for QBasic®.

"Qt for Ada 2005":http://www.qtada.com/ (QtAda)

QtAda is an Ada2005 language prividing bindings to the Qt libraries and a set of useful tools. QtAda supports Qt version 4.6 and later.



Perl bindings

"official PerlQt and PerlKDE":https://projects.kde.org/projects/kde/kdebindings/perl

This is what the Linux distros ship. Expect updates for Qt5 in 2013. Subscribe to the "kde-bindings list":http://lists.kde.org/?l=kde-bindings for news.

This repository used to be at "Google code":http://code.google.com/p/perlqt4/, then moved to KDE in 2012. Some outdated code snapshots are on "CPAN":http://search.cpan.org/~cburel/; prefer the KDE repository.

"Vadim Likhota bindings":http://search.cpan.org/~vadiml/

One-man effort, last updated 2008. "opendesktop.org mirror":http://www.opendesktop.org/content/show.php/?action=content&content=69748

"Dongxu Ma bindings":http://search.cpan.org/~dongxu/

One-man effort, last update 2012. "GitHub mirror":https://github.com/dxma/cpan/wiki

"PerlQt3":http://sf.net/projects/perlqt

Outdated, Qt3 only.

"PerlQt":http://search.cpan.org/dist/PerlQt/

Outdated, Qt2 and Qt1 only.



=== "Qt for C#":http://techbase.kde.org/Development/Languages/QtSharp (Qyoto) Qyoto makes it possible to develop Qt and KDE applications using C#, or any other .NET language. Qyoto uses SMOKE, and offers access to almost all Qt and KDE classes. ===

"Qt for D":http://www.dsource.org/projects/qtd (QtD)

QtD is a binding of the Qt framework to the "D programming language version 2.":http://www.digitalmars.com/d/2.0/index.html

"Qt for Pascal":http://wiki.lazarus.freepascal.org/Qt4_binding (FPC Qt4 Binding)

The Free Pascal Qt4 binding allows Free Pascal to interface with the C++ Library Qt. This binding does not cover the whole Qt4 framework but only the classes needed by the Cross Platform Lazarus IDE to use Qt as a Widget set. More "info":http://users.telenet.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html

"Qt for Lua":http://www.nongnu.org/libqtlua/ (QtLua)

The QtLua library are trying to make Qt4 applications scriptable using the Lua scripting language as an alternative to the QtScript module.

"Qt for Haskell":http://qthaskell.berlios.de/ (qtHaskell)

The qtHaskell project provides a set of Haskell bindings for Qt. Haskell programmers can access the "Signals and Slots" interface logic, design interfaces using Qt Designer and write scripted applications using the Qt ECMA/Javascript engine.

"Qt Quick for Haskell":http://www.gekkou.co.uk/software/hsqml/ (HsQML)

HsQML provides a Haskell binding to the Qt Quick framework. It allows you to write graphical applications where the front-end is written in Qt Quick's QML language (incorporating JavaScript) and the back-end is written in Haskell.

"Qt Quick for OCaml":http://kakadu.github.io/lablqt/ (lablqt)

"Qt for PHP":http://sourceforge.net/projects/php-qt/ (PHP-Qt)

"Qt for Chicken Scheme":http://wiki.call-cc.org/eggref/4/qt (Qt 4 egg)

An incomplete binding which supports loading UI files, binding to GUIs thus instantiated, and networking and dbus functionality.

References