Category:LanguageBindings: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
(12 intermediate revisions by 8 users not shown)
Line 1: Line 1:
h1. Programming Language Support & Language Bindings
#REDIRECT [[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™.
<br />h2. 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+'':
<br />* Powerful mechanism for inter-object communication called &quot;signals and slots&amp;quot;:https://doc.qt.io/qt-5/signalsandslots.html<br />* Queryable and designable &quot;object properties &quot;:https://doc.qt.io/qt-5/properties.html#qt-s-property-system<br />* Powerful &quot;events and events filters &quot;:https://doc.qt.io/qt-5/eventsandfilters.html<br />* Contextual &quot;string translation for internationalization &quot;:https://doc.qt.io/qt-5/i18n.html<br />* Sophisticated interval driven &quot;timers&amp;quot;:https://doc.qt.io/qt-5/timers.html that make it possible to elegantly integrate many tasks in an event-driven GUI<br />* Hierarchical and queryable &quot;object trees&amp;quot;:https://doc.qt.io/qt-5/objecttrees.html that organize object ownership in a natural way<br />* &quot;Guarded pointers&amp;quot;:https://doc.qt.io/qt-5/qpointer.html 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<br />* A &quot;dynamic cast &quot;:https://doc.qt.io/qt-5/metaobjects.html 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: &quot;QML Elements &quot;:http://doc.qt.nokia.com/4.7/qdeclarativeelements.html
* No C++ knowledge required for UI creation, but can be extended with C++
 
&quot;Find out more about Qt Quick&amp;quot;:http://doc.qt.nokia.com/4.7/qdeclarativeintroduction.html
 
== These are third party language bindings for Qt ==
 
=== &quot;PySide: Python for Qt&amp;quot;:http://www.pyside.org (LGPL) ===
 
* [[Category:LanguageBindings::PySide|Wiki]]
* [[PySideDocumentation|Documentation (Guides and Tutorials)]]
* [[PySideDevelopment|Development]]
* [[PySideDownloads|Downloads]]
* &quot;Mailing list&amp;quot;:http://lists.qt.io/mailman/listinfo/pyside
* &quot;Source code&amp;quot;:http://qt.gitorious.org/pyside
* &quot;Bug Tracker&amp;quot;:https://bugreports.qt.io/browse/PYSIDE
 
=== &quot;PyQt&amp;quot;:http://www.riverbankcomputing.com/news (GPL/commercial) ===
 
* &quot;Tutorials&amp;quot;:https://wiki.python.org/moin/PyQt/Tutorials
* &quot;API Documentation&amp;quot;:http://www.riverbankcomputing.com/static/Docs/PyQt4/html/classes.html
* &quot;Reference Guide&amp;quot;:http://www.riverbankcomputing.com/static/Docs/PyQt4/html/index.html
* &quot;Book&amp;quot;:http://www.qtrac.eu/pyqtbook.html
* &quot;Whitepaper&amp;quot;:http://www.riverbankcomputing.com/software/pyqt/whitepaper
 
=== &quot;Qt for Java&amp;quot;: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.
 
* &quot;Jambi Community&amp;quot;:http://qt-jambi.org/
* &quot;Old tutorial&amp;quot;:http://doc.qt.digia.com/qtjambi-4.4/html/com/trolltech/qt/qtjambi-tutorial.html
* &quot;Old API Javadoc&amp;quot;:http://doc.qt.digia.com/qtjambi-4.4/html/index.html
 
=== &quot;Qt for Ruby&amp;quot;: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.
 
* &quot;Tutorial&amp;quot;:http://www.darshancomputing.com/qt4-qtruby-tutorial/
* &quot;Book&amp;quot;:http://www.pragmaticprogrammer.com/titles/ctrubyqt/ (for Qt 3)
 
=== &quot;Qt for BASIC&amp;quot;: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®.
 
=== &quot;Qt for Ada 2005&amp;quot;: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.
 
* [[qtada_fedora | Building QtAda on Fedora 16]]
 
 
-----
 
=== Perl bindings ===
 
==== &quot;official PerlQt and PerlKDE&amp;quot;:https://projects.kde.org/projects/kde/kdebindings/perl ====
 
This is what the Linux distros ship. Expect updates for Qt5 in 2013. Subscribe to the &quot;kde-bindings list&amp;quot;:http://lists.kde.org/?l=kde-bindings for news.
 
This repository used to be at &quot;Google code&amp;quot;:http://code.google.com/p/perlqt4/, then moved to KDE in 2012. Some outdated code snapshots are on &quot;CPAN&amp;quot;:http://search.cpan.org/~cburel/; prefer the KDE repository.
 
==== &quot;Vadim Likhota bindings&amp;quot;:http://search.cpan.org/~vadiml/ ====
 
One-man effort, last updated 2008. &quot;opendesktop.org mirror&amp;quot;:http://www.opendesktop.org/content/show.php/?action=content&amp;amp;content=69748
 
==== &quot;Dongxu Ma bindings&amp;quot;:http://search.cpan.org/~dongxu/ ====
 
One-man effort, last update 2012. &quot;GitHub mirror&amp;quot;:https://github.com/dxma/cpan/wiki
 
==== &quot;PerlQt3&amp;quot;:http://sf.net/projects/perlqt ====
 
Outdated, Qt3 only.
 
==== &quot;PerlQt&amp;quot;:http://search.cpan.org/dist/PerlQt/ ====
 
Outdated, Qt2 and Qt1 only.
 
 
-----
 
=== &quot;Qt for C#&quot;:http://techbase.kde.org/Development/Languages/QtSharp (Qyoto)<br />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. ===
 
=== &quot;Qt for D&amp;quot;:http://www.dsource.org/projects/qtd (QtD) ===
 
QtD is a binding of the Qt framework to the &quot;D programming language version 2.&quot;:http://www.digitalmars.com/d/2.0/index.html
 
=== &quot;Qt for Pascal&amp;quot;: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 &quot;info&amp;quot;:http://users.telenet.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html
 
=== &quot;Qt for Lua&amp;quot;: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.
 
=== &quot;Qt for Haskell&amp;quot;:http://qthaskell.berlios.de/ (qtHaskell) ===
 
The qtHaskell project provides a set of Haskell bindings for Qt. Haskell programmers can access the &quot;Signals and Slots&amp;quot; interface logic, design interfaces using Qt Designer and write scripted applications using the Qt ECMA/Javascript engine.
 
=== &quot;Qt Quick for Haskell&amp;quot;: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.
 
=== &quot;Qt Quick for OCaml&amp;quot;:http://kakadu.github.io/lablqt/ (lablqt) ===
 
=== &quot;Qt for PHP&amp;quot;:http://sourceforge.net/projects/php-qt/ (PHP-Qt) ===
 
=== &quot;Qt for Chicken Scheme&amp;quot;: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 ==

Latest revision as of 02:44, 5 June 2016

Redirect to:

This category currently contains no pages or media.