Category:LanguageBindings: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
 
(13 intermediate revisions by 8 users not shown)
Line 1: Line 1:
=Programming Language Support & Language Bindings=
#REDIRECT [[Language Bindings]]
 
The Qt <span class="caps">API</span> is implemented in C++, and provides additional features for easier cross-platform development. <span class="caps">QML</span> – introduced with Qt Quick is a <span class="caps">CSS</span> 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, <span class="caps">PHP</span>, 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 <span class="caps">GUI</span> development. Qt adds the following features to C++:
 
* Powerful mechanism for inter-object communication called [https://doc.qt.io/qt-5/signalsandslots.html signals and slots] ''[qt.io]''
* Queryable and designable [https://doc.qt.io/qt-5/properties.html#qt-s-property-system object properties] ''[qt.io]''
* Powerful [https://doc.qt.io/qt-5/eventsandfilters.html events and events filters] ''[qt.io]''
* Contextual [https://doc.qt.io/qt-5/i18n.html string translation for internationalization] ''[qt.io]''
* Sophisticated interval driven [https://doc.qt.io/qt-5/timers.html timers] ''[qt.io]'' that make it possible to elegantly integrate many tasks in an event-driven <span class="caps">GUI</span>
* Hierarchical and queryable [https://doc.qt.io/qt-5/objecttrees.html object trees] ''[qt.io]'' that organize object ownership in a natural way
* [https://doc.qt.io/qt-5/qpointer.html Guarded pointers] ''[qt.io]'' 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 [https://doc.qt.io/qt-5/metaobjects.html dynamic cast] ''[qt.io]'' works across library boundaries.
 
==<span class="caps">QML</span> Development with Qt Quick==
 
<span class="caps">QML</span> 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 <span class="caps">QML</span>, a user interface is specified as a tree of objects with properties.
 
* JavaScript, <span class="caps">HTML</span> and <span class="caps">CSS</span> skills can be used to code complete apps
* Optimized for touch-based, animated mobile UIs
* Includes a set of graphical and behavioral building blocks: [http://doc.qt.nokia.com/4.7/qdeclarativeelements.html <span class="caps">QML</span> Elements] ''[doc.qt.nokia.com]''
* 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] ''[doc.qt.nokia.com]''
 
==These are third party language bindings for Qt==
 
===[http://www.pyside.org PySide: Python for Qt] ''[pyside.org]'' (<span class="caps">LGPL</span>)===
 
* [[:Category:LanguageBindings::PySide|Wiki]]
* [[PySideDocumentation|Documentation (Guides and Tutorials)]]
* [[PySideDevelopment|Development]]
* [[PySideDownloads|Downloads]]
* [http://lists.qt.io/mailman/listinfo/pyside Mailing list] ''[lists.qt.io]''
* [http://qt.gitorious.org/pyside Source code] ''[qt.gitorious.org]''
* [https://bugreports.qt.io/browse/PYSIDE Bug Tracker] ''[bugreports.qt.io]''
 
===[http://www.riverbankcomputing.com/news PyQt] ''[riverbankcomputing.com]'' (<span class="caps">GPL</span>/commercial)===
 
* [https://wiki.python.org/moin/PyQt/Tutorials Tutorials] ''[wiki.python.org]''
* [http://www.riverbankcomputing.com/static/Docs/PyQt4/html/classes.html <span class="caps">API</span> Documentation] ''[riverbankcomputing.com]''
* [http://www.riverbankcomputing.com/static/Docs/PyQt4/html/index.html Reference Guide] ''[riverbankcomputing.com]''
* [http://www.qtrac.eu/pyqtbook.html Book] ''[qtrac.eu]''
* [http://www.riverbankcomputing.com/software/pyqt/whitepaper Whitepaper] ''[riverbankcomputing.com]''
 
===[http://qt.gitorious.org/qt-jambi Qt for Java] ''[qt.gitorious.org]'' (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.
 
* [http://qt-jambi.org/ Jambi Community] ''[qt-jambi.org]''
* [http://doc.qt.digia.com/qtjambi-4.4/html/com/trolltech/qt/qtjambi-tutorial.html Old tutorial] ''[doc.qt.digia.com]''
* [http://doc.qt.digia.com/qtjambi-4.4/html/index.html Old <span class="caps">API</span> Javadoc] ''[doc.qt.digia.com]''
 
===[http://techbase.kde.org/Development/Languages/Ruby Qt for Ruby] ''[techbase.kde.org]'' (QtRuby)===
 
The project provides complete bindings to both the <span class="caps">KDE</span> <span class="caps">API</span> and the Qt <span class="caps">API</span>s. 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 <span class="caps">KDE</span>.
 
* [http://www.darshancomputing.com/qt4-qtruby-tutorial/ Tutorial] ''[darshancomputing.com]''
* [http://www.pragmaticprogrammer.com/titles/ctrubyqt/ Book] ''[pragmaticprogrammer.com]'' (for Qt 3)
 
===[http://www.kbasic.com/ Qt for <span class="caps">BASIC</span>] ''[kbasic.com]'' (KBasic)===
 
KBasic uses Qt as its toolkit to provide cross-platform abilities. KBasic is a further <span class="caps">BASIC</span> 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.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===
 
====[https://projects.kde.org/projects/kde/kdebindings/perl official PerlQt and PerlKDE] ''[projects.kde.org]''====
 
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] ''[lists.kde.org]'' for news.
 
This repository used to be at [http://code.google.com/p/perlqt4/ Google code] ''[code.google.com]'', then moved to <span class="caps">KDE</span> in 2012. Some outdated code snapshots are on [http://search.cpan.org/~cburel/; <span class="caps">CPAN</span>] ''[search.cpan.org]'' prefer the <span class="caps">KDE</span> repository.
 
====[http://search.cpan.org/~vadiml/ Vadim Likhota bindings] ''[search.cpan.org]''====
 
One-man effort, last updated 2008. [http://www.opendesktop.org/content/show.php/?action=content&content=69748 opendesktop.org mirror] ''[opendesktop.org]''
 
====[http://search.cpan.org/~dongxu/ Dongxu Ma bindings] ''[search.cpan.org]''====
 
One-man effort, last update 2012. [https://github.com/dxma/cpan/wiki GitHub mirror] ''[github.com]''
 
====[http://sf.net/projects/perlqt PerlQt3] ''[sf.net]''====
 
Outdated, Qt3 only.
 
====[http://search.cpan.org/dist/PerlQt/ PerlQt] ''[search.cpan.org]''====
 
Outdated, Qt2 and Qt1 only.
 
——
 
===[http://techbase.kde.org/Development/Languages/QtSharp Qt for C#] ''[techbase.kde.org]'' (Qyoto) Qyoto makes it possible to develop Qt and <span class="caps">KDE</span> applications using C#, or any other .NET language. Qyoto uses <span class="caps">SMOKE</span>, and offers access to almost all Qt and <span class="caps">KDE</span> classes.===
 
===[http://www.dsource.org/projects/qtd Qt for D] ''[dsource.org]'' (QtD)===
 
QtD is a binding of the Qt framework to the [http://www.digitalmars.com/d/2.0/index.html D programming language version 2.] ''[digitalmars.com]''
 
===[http://wiki.lazarus.freepascal.org/Qt4_binding Qt for Pascal] ''[wiki.lazarus.freepascal.org]'' (<span class="caps">FPC</span> 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 <span class="caps">IDE</span> to use Qt as a Widget set. More [http://users.telenet.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html info] ''[users.telenet.be]''
 
===[http://www.nongnu.org/libqtlua/ Qt for Lua] ''[nongnu.org]'' (QtLua)===
 
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.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 <span class="caps">ECMA</span>/Javascript engine.
 
===[http://www.gekkou.co.uk/software/hsqml/ Qt Quick for Haskell] ''[gekkou.co.uk]'' (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 <span class="caps">QML</span> language (incorporating JavaScript) and the back-end is written in Haskell.
 
===[http://kakadu.github.io/lablqt/ Qt Quick for OCaml] ''[kakadu.github.io]'' (lablqt)===
 
===[http://sourceforge.net/projects/php-qt/ Qt for <span class="caps">PHP</span>] ''[sourceforge.net]'' (<span class="caps">PHP</span>-Qt)===
 
===[http://wiki.call-cc.org/eggref/4/qt Qt for Chicken Scheme] ''[wiki.call-cc.org]'' (Qt 4 egg)===
 
An incomplete binding which supports loading UI files, binding to <span class="caps">GUI</span>s thus instantiated, and networking and dbus functionality.
 
==References==
 
* Wikipedia has a comprehensive “list of language bindings for Qt”: https://en.wikipedia.org/wiki/Qt_(framework)#Programming_language_bindings
 
===Subcategories:===
 
There are 6 subcategories for this category
 
* [[:Category:LanguageBindings::PySide|PySide]]
 
===There are 136 articles in "LanguageBindings":===
 
'''1'''[[:Category:LanguageBindings/P100|2]][[:Category:LanguageBindings/P100|&gt;]]===A===
* [[About-PySide|About PySide]]
* [[About-PySide-Japanese|About PySide Japanese]]
* [[Auto-generating-QObject-from-template-in-PySide|Auto generating QObject from template in PySide]]===B===
* [[Building PySide|Building_PySide]]
* [[Building PySide on Android|Building_PySide_on_Android]]
* [[Building PySide on Linux|Building_PySide_on_Linux]]
* [[Building PySide on Mac OS X|Building_PySide_on_Mac_OS_X]]
* [[Building PySide on Symbian|Building_PySide_on_Symbian]]
* [[Building PySide on Windows|Building_PySide_on_Windows]]
* [[Building Qt Jambi on Windows using MinGW|Building_Qt_Jambi_on_Windows_using_MinGW]]===C===
* [[Connecting QML Signals in PySide|Connecting_QML_Signals_in_PySide]]===D===
* [[Defining-and-using-constants-from-PySide-in-QML|Defining and using constants from PySide in QML]]
* [[Defining-and-using-constants-from-PySide-in-QML-Korean|Defining and using constants from PySide in QML Korean]]
* [[Differences Between PySide and PyQt|Differences_Between_PySide_and_PyQt]]
* [[Differences Between PySide and PyQt SimplifiedChinese|Differences_Between_PySide_and_PyQt_SimplifiedChinese]]===F===
* [[Filling-and-reading-QML-UI-forms-from-Python|Filling and reading QML UI forms from Python]]===G===
* [[Generating new bindings with PySide|Generating_new_bindings_with_PySide]]
* [[Generating PySide Reference Documentation|Generating_PySide_Reference_Documentation]]===H===
* [[Hello-World-in-PySide|Hello World in PySide]]
* [[Hello-World-in-PySide-and-QtQuick|Hello World in PySide and QtQuick]]
* [[Hello-World-in-PySide-and-QtQuick-Japanese|Hello World in PySide and QtQuick Japanese]]
* [[Hello-World-in-PySide-and-QtQuick-Korean|Hello World in PySide and QtQuick Korean]]
* [[Hello-World-in-PySide-Japanese|Hello World in PySide Japanese]]
* [[Hello-World-in-PySide-Korean|Hello World in PySide Korean]]===L===
* [[:Category:LanguageBindings|Category:LanguageBindings]]
* [[:Category:LanguageBindings::PySide|Category:LanguageBindings -&gt; PySide]]
* [[:Category:LanguageBindings::PySide::Downloads|Category:LanguageBindings -&gt; PySide -&gt; Downloads]]
* [[:Category:LanguageBindings::PySide::Newbie Tutorials|Category:LanguageBindings -&gt; PySide -&gt; Newbie_Tutorials]]
* [[:Category:LanguageBindings::PySideJapanese|Category:LanguageBindings -&gt; PySideJapanese]]
* [[:Category:LanguageBindings::PySide FAQ Japanese|Category:LanguageBindings -&gt; PySide_FAQ_Japanese]]===M===
* [[Multi-selection-lists-in-Python-with-QML|Multi selection lists in Python with QML]]===P===
* [[Packaging PySide applications on Windows|Packaging_PySide_applications_on_Windows]]
* [[PySide-and-QML-Playground|PySide and QML Playground]]
* [[PySide-Internationalization-Japanese|PySide Internationalization Japanese]]
* [[PySide-Newbie-Tutorials|PySide Newbie Tutorials]]
* [[PySide-Newbie-Tutorials-Japanese|PySide Newbie Tutorials Japanese]]
* [[PySide-Pitfalls-Japanese|PySide Pitfalls Japanese]]
* [[PySide-QtQuick-Tutorials|PySide QtQuick Tutorials]]
* [[PySide-Tutorials-by-Experience-Level|PySide Tutorials by Experience Level]]
* [[PySide-Tutorials-by-Experience-Level-Japanese|PySide Tutorials by Experience Level Japanese]]
* [[PySide-Tutorials-by-Experience-Level-Korean|PySide Tutorials by Experience Level Korean]]
* [[PySideContributors]]
* [[PySideDevelopment]]
* [[PySideDocumentation]]
* [[PySideDocumentationJapanese]]
* [[PySideDownloadsJapanese]]
* [[PySideSimplicissimus Module 1 Prerequisites|PySideSimplicissimus_Module_1_Prerequisites]]
* [[PySideSimplicissimus Module 2 CloseButton|PySideSimplicissimus_Module_2_CloseButton]]
* [[PySideSimplicissimus Module 2 CloseButton Japanese|PySideSimplicissimus_Module_2_CloseButton_Japanese]]
* [[PySideSimplicissimus Module 3 AboutBox|PySideSimplicissimus_Module_3_AboutBox]]
* [[PySideSimplicissimus Module 3 AboutBox Japanese|PySideSimplicissimus_Module_3_AboutBox_Japanese]]
* [[PySideSimplicissimus Module 4 ShowLicence|PySideSimplicissimus_Module_4_ShowLicence]]
* [[PySideSimplicissimus Module 4 ShowLicence Japanese|PySideSimplicissimus_Module_4_ShowLicence_Japanese]]
* [[PySideSimplicissimus Module 5 Combine|PySideSimplicissimus_Module_5_Combine]]
* [[PySideSimplicissimus Module 5 Combine Japanese|PySideSimplicissimus_Module_5_Combine_Japanese]]
* [[PySideSimplicissimus Module 6 AlternativeCombine|PySideSimplicissimus_Module_6_AlternativeCombine]]
* [[PySideSimplicissimus Module 6 AlternativeCombine Japanese|PySideSimplicissimus_Module_6_AlternativeCombine_Japanese]]
* [[PySideSimplicissimus Module 7 CombineAllIn1|PySideSimplicissimus_Module_7_CombineAllIn1]]
* [[PySideSimplicissimus Module 7 CombineAllIn1 Japanese|PySideSimplicissimus_Module_7_CombineAllIn1_Japanese]]
* [[PySideTutorials Clickable button|PySideTutorials_Clickable_button]]
* [[PySideTutorials Clickable button Japanese|PySideTutorials_Clickable_button_Japanese]]
* [[PySideTutorials Simple Dialog|PySideTutorials_Simple_Dialog]]
* [[PySideTutorials Simple Dialog Japanese|PySideTutorials_Simple_Dialog_Japanese]]
* [[PySide API Extractor|PySide_API_Extractor]]
* [[PySide Archives|PySide_Archives]]
* [[PySide Based Apps|PySide_Based_Apps]]
* [[PySide Binaries Linux|PySide_Binaries_Linux]]
* [[PySide Binaries MacOSX|PySide_Binaries_MacOSX]]
* [[PySide Binaries Maemo|PySide_Binaries_Maemo]]
* [[PySide Binaries MeeGo|PySide_Binaries_MeeGo]]
* [[PySide Binaries Windows|PySide_Binaries_Windows]]
* [[PySide Binding Generation Tutorial|PySide_Binding_Generation_Tutorial]]
* [[PySide Binding Generation Tutorial: Module 1 Creating the foo library|PySide_Binding_Generation_Tutorial:_Module_1_Creating_the_foo_library]]
* [[PySide Binding Generation Tutorial: Module 2 Binding libfoo using Shiboken|PySide_Binding_Generation_Tutorial:_Module_2_Binding_libfoo_using_Shiboken]]
* [[PySide Binding Generation Tutorial: Module 3 Creating Type System Description|PySide_Binding_Generation_Tutorial:_Module_3_Creating_Type_System_Description]]
* [[PySide Binding Generation Tutorial: Module 4 The Global Header|PySide_Binding_Generation_Tutorial:_Module_4_The_Global_Header]]
* [[PySide Binding Generation Tutorial: Module 5 Building the generator|PySide_Binding_Generation_Tutorial:_Module_5_Building_the_generator]]
* [[PySide Binding Generator|PySide_Binding_Generator]]
* [[PySide Bits Pieces|PySide_Bits_Pieces]]
* [[PySide CMake Primer|PySide_CMake_Primer]]
* [[PySide DBus Integration|PySide_DBus_Integration]]
* [[PySide Development Getting Started|PySide_Development_Getting_Started]]
* [[PySide Engineering Application|PySide_Engineering_Application]]
* [[PySide Error Management|PySide_Error_Management]]
* [[PySide Examples|PySide_Examples]]
* [[PySide Example Applications|PySide_Example_Applications]]
* [[PySide FAQ|PySide_FAQ]]
* [[PySide for Android guide|PySide_for_Android_guide]]
* [[PySide Generating New Bindings|PySide_Generating_New_Bindings]]
* [[PySide GSoc Ideas|PySide_GSoc_Ideas]]
* [[PySide Hungarian|PySide_Hungarian]]
* [[PySide Internationalization|PySide_Internationalization]]
* [[PySide Logo|PySide_Logo]]
* [[PySide Pitfalls|PySide_Pitfalls]]
* [[PySide Presentations|PySide_Presentations]]
* [[PySide Python 3 Issues|PySide_Python_3_Issues]]
* [[PySide Python 3 Support|PySide_Python_3_Support]]
* [[PySide QML Tutorial Advanced 1|PySide_QML_Tutorial_Advanced_1]]
* [[PySide QML Tutorial Advanced 2|PySide_QML_Tutorial_Advanced_2]]
* [[PySide QML Tutorial Advanced 3|PySide_QML_Tutorial_Advanced_3]]'''1'''[[:Category:LanguageBindings/P100|2]][[:Category:LanguageBindings/P100|&gt;]]
 
===Categories:===
 
* [[:Category:LanguageBindings|LanguageBindings]]
** [[:Category:LanguageBindings::PySide|PySide]]

Latest revision as of 02:44, 5 June 2016

Redirect to:

This category currently contains no pages or media.