Category:LanguageBindings: Difference between revisions
(Added LangSwitch) |
AutoSpider (talk | contribs) (Convert ExpressionEngine links) |
||
Line 9: | Line 9: | ||
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+'': | 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+'': | ||
* Powerful mechanism for inter-object communication called | * Powerful mechanism for inter-object communication called [https://doc.qt.io/qt-5/signalsandslots.html signals and slots] | ||
* Queryable and designable | * Queryable and designable [https://doc.qt.io/qt-5/properties.html#qt-s-property-system object properties ] | ||
* Powerful | * Powerful [https://doc.qt.io/qt-5/eventsandfilters.html events and events filters ] | ||
* Contextual | * Contextual [https://doc.qt.io/qt-5/i18n.html string translation for internationalization ] | ||
* Sophisticated interval driven | * Sophisticated interval driven [https://doc.qt.io/qt-5/timers.html timers] that make it possible to elegantly integrate many tasks in an event-driven GUI | ||
* Hierarchical and queryable | * Hierarchical and queryable [https://doc.qt.io/qt-5/objecttrees.html object trees] that organize object ownership in a natural way | ||
* | * [https://doc.qt.io/qt-5/qpointer.html Guarded pointers] that are automatically set to 0 when the referenced object is destroyed, unlike normal C++ pointers which become dangling pointers when their objects are destroyed | ||
* A | * A [https://doc.qt.io/qt-5/metaobjects.html dynamic cast ] works across library boundaries. | ||
== QML Development with Qt Quick == | == QML Development with Qt Quick == | ||
Line 24: | Line 24: | ||
* JavaScript, HTML and CSS skills can be used to code complete apps | * JavaScript, HTML and CSS skills can be used to code complete apps | ||
* Optimized for touch-based, animated mobile UIs | * Optimized for touch-based, animated mobile UIs | ||
* Includes a set of graphical and behavioral building blocks: | * Includes a set of graphical and behavioral building blocks: [http://doc.qt.nokia.com/4.7/qdeclarativeelements.html QML Elements ] | ||
* No C++ knowledge required for UI creation, but can be extended with C++ | * No C++ knowledge required for UI creation, but can be extended with C++ | ||
[http://doc.qt.nokia.com/4.7/qdeclarativeintroduction.html Find out more about Qt Quick] | |||
== These are third party language bindings for Qt == | == These are third party language bindings for Qt == | ||
Line 41: | Line 41: | ||
* [https://bugreports.qt.io/browse/PYSIDE Bug tracker] | * [https://bugreports.qt.io/browse/PYSIDE Bug tracker] | ||
=== | === [http://www.riverbankcomputing.com/news PyQt] (GPL 3/commercial) === | ||
* | * [https://wiki.python.org/moin/PyQt/Tutorials Tutorials] | ||
* | * [http://pyqt.sourceforge.net/Docs/PyQt4/ Reference Guide (PyQt4)] | ||
* [http://pyqt.sourceforge.net/Docs/PyQt4/classes.html API Documentation (PyQt4)] | |||
* | * [http://pyqt.sourceforge.net/Docs/PyQt5/index.html Reference Guide (PyQt5)] | ||
* [http://pyqt.sourceforge.net/Docs/PyQt5/class_reference.html API Documentation (PyQt5)] | |||
* | * [http://www.qtrac.eu/pyqtbook.html Book] | ||
* | * [http://www.riverbankcomputing.com/software/pyqt/whitepaper Whitepaper] | ||
=== | === [http://qt.gitorious.org/qt-jambi Qt for Java] (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 Jambi – Qt bindings to the Java programming language – is maintained by the community. You can find more information from http://qt-jambi.org. | ||
* | * [http://qt-jambi.org/ Jambi Community] | ||
* | * [http://doc.qt.digia.com/qtjambi-4.4/html/com/trolltech/qt/qtjambi-tutorial.html Old tutorial] | ||
* | * [http://doc.qt.digia.com/qtjambi-4.4/html/index.html Old API Javadoc] | ||
=== | === [http://techbase.kde.org/Development/Languages/Ruby Qt for 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. | 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. | ||
* | * [http://www.darshancomputing.com/qt4-qtruby-tutorial/ Tutorial] | ||
* | * [http://www.pragmaticprogrammer.com/titles/ctrubyqt/ Book] (for Qt 3) | ||
=== | === [http://www.kbasic.com/ Qt for BASIC] (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®. | 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®. | ||
=== | === [http://www.qtada.com/ Qt for Ada 2005] (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. | 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. | ||
Line 81: | Line 81: | ||
=== Perl bindings === | === Perl bindings === | ||
==== | ==== [https://projects.kde.org/projects/kde/kdebindings/perl official PerlQt and PerlKDE] ==== | ||
This is what the Linux distros ship. Expect updates for Qt5 in 2013. Subscribe to the | This is what the Linux distros ship. Expect updates for Qt5 in 2013. Subscribe to the [http://lists.kde.org/?l=kde-bindings kde-bindings list] for news. | ||
This repository used to be at | This repository used to be at [http://code.google.com/p/perlqt4/ Google code], then moved to KDE in 2012. Some outdated code snapshots are on [http://search.cpan.org/~cburel/; CPAN] prefer the KDE repository. | ||
==== | ==== [http://search.cpan.org/~vadiml/ Vadim Likhota bindings] ==== | ||
One-man effort, last updated 2008. | One-man effort, last updated 2008. [http://www.opendesktop.org/content/show.php/?action=content&content=69748 opendesktop.org mirror] | ||
==== | ==== [http://search.cpan.org/~dongxu/ Dongxu Ma bindings] ==== | ||
One-man effort, last update 2012. | One-man effort, last update 2012. [https://github.com/dxma/cpan/wiki GitHub mirror] | ||
==== | ==== [http://sf.net/projects/perlqt PerlQt3] ==== | ||
Outdated, Qt3 only. | Outdated, Qt3 only. | ||
==== | ==== [http://search.cpan.org/dist/PerlQt/ PerlQt] ==== | ||
Outdated, Qt2 and Qt1 only. | Outdated, Qt2 and Qt1 only. | ||
Line 106: | Line 106: | ||
----- | ----- | ||
=== | === [http://techbase.kde.org/Development/Languages/QtSharp Qt for C#] (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. === | 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. === | ||
=== | === [http://www.dsource.org/projects/qtd Qt for D] (QtD) === | ||
QtD is a binding of the Qt framework to the | QtD is a binding of the Qt framework to the [http://www.digitalmars.com/d/2.0/index.html D programming language version 2.] | ||
=== | === [http://wiki.lazarus.freepascal.org/Qt4_binding Qt for Pascal] (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 | 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 [http://users.telenet.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html info] | ||
=== | === [http://www.nongnu.org/libqtlua/ Qt for Lua] (QtLua) === | ||
The QtLua library are trying to make Qt4 applications scriptable using the Lua scripting language as an alternative to the QtScript module. | The QtLua library are trying to make Qt4 applications scriptable using the Lua scripting language as an alternative to the QtScript module. | ||
=== | === [http://qthaskell.berlios.de/ Qt for Haskell] (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. | 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. | ||
=== | === [http://www.gekkou.co.uk/software/hsqml/ Qt Quick for Haskell] (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. | 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. | ||
=== | === [http://kakadu.github.io/lablqt/ Qt Quick for OCaml] (lablqt) === | ||
=== | === [http://sourceforge.net/projects/php-qt/ Qt for PHP] (PHP-Qt) === | ||
=== | === [http://wiki.call-cc.org/eggref/4/qt Qt for Chicken Scheme] (Qt 4 egg) === | ||
An incomplete binding which supports loading UI files, binding to GUIs thus instantiated, and networking and dbus functionality. | An incomplete binding which supports loading UI files, binding to GUIs thus instantiated, and networking and dbus functionality. | ||
== References == | == References == |
Revision as of 16:23, 18 August 2015
En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh
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+:
- Powerful mechanism for inter-object communication called signals and slots
- Queryable and designable object properties
- Powerful events and events filters
- Contextual string translation for internationalization
- Sophisticated interval driven timers that make it possible to elegantly integrate many tasks in an event-driven GUI
- Hierarchical and queryable object trees that organize object ownership in a natural way
- Guarded pointers that are automatically set to 0 when the referenced object is destroyed, unlike normal C++ pointers which become dangling pointers when their objects are destroyed
- A dynamic cast works across library boundaries.
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
- No C++ knowledge required for UI creation, but can be extended with C++
These are third party language bindings for Qt
PySide: Python for Qt (LGPL)
- Wiki
- Documentation (Guides and Tutorials)
- Development
- Downloads
- Mailing list
- Source code
- Bug tracker
PyQt (GPL 3/commercial)
- Tutorials
- Reference Guide (PyQt4)
- API Documentation (PyQt4)
- Reference Guide (PyQt5)
- API Documentation (PyQt5)
- Book
- Whitepaper
Qt for Java (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 (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 (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 (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
This is what the Linux distros ship. Expect updates for Qt5 in 2013. Subscribe to the kde-bindings list for news.
This repository used to be at Google code, then moved to KDE in 2012. Some outdated code snapshots are on CPAN prefer the KDE repository.
Vadim Likhota bindings
One-man effort, last updated 2008. opendesktop.org mirror
Dongxu Ma bindings
One-man effort, last update 2012. GitHub mirror
PerlQt3
Outdated, Qt3 only.
PerlQt
Outdated, Qt2 and Qt1 only.
=== Qt for C# (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 (QtD)
QtD is a binding of the Qt framework to the D programming language version 2.
Qt for Pascal (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
Qt for Lua (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 (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 (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 (lablqt)
Qt for PHP (PHP-Qt)
Qt for Chicken Scheme (Qt 4 egg)
An incomplete binding which supports loading UI files, binding to GUIs thus instantiated, and networking and dbus functionality.
References
This category currently contains no pages or media.