Identifiant
Mot de passe
Loading...
Mot de passe oublié ?
Je m'inscris ! (gratuit)
Forums
Tutoriels
FAQ
Blogs
Chat
Newsletter
Emploi
Études
Droit
Club
DI/DSI Solutions d'entreprise
DI/DSI Solutions d'entreprise
Big Data
BPM
Business Intelligence
Data Science
ERP / PGI
CRM
SAS
SAP
Sécurité
Droit informatique et entreprise
OnlyOffice
Cloud
Cloud Computing
Oracle
Azure
IBM Cloud
IA
Intelligence artificielle
ALM
ALM
Agile
Merise
UML
Microsoft
Microsoft
.NET
Microsoft Office
Visual Studio
Windows
ASP.NET
TypeScript
C#
VB.NET
Azure
Java
Java
Java Web
Spring
Android
Eclipse
NetBeans
Dév. Web
Développement et hébergement Web
AJAX
Apache
ASP
CSS
Dart
Flash / Flex
JavaScript
NodeJS
PHP
Ruby & Rails
TypeScript
Web sémantique
Webmarketing
(X)HTML
EDI
EDI
4D
Delphi
Eclipse
JetBrains
LabVIEW
NetBeans
MATLAB
Scilab
Visual Studio
WinDev
Visual Basic 6
Lazarus
Qt Creator
Programmation
Programmation
Débuter - Algorithmique
2D - 3D - Jeux
Assembleur
C
C++
C#
D
Go
Kotlin
Objective C
Pascal
Perl
Python
Rust
Swift
Qt
XML
Autres
SGBD
SGBD & SQL
4D
Access
Big Data
Data Science
DB2
Firebird
InterBase
MySQL
NoSQL
PostgreSQL
Oracle
Sybase
SQL-Server
MongoDB
Office
Microsoft Office
Access
Excel
Word
Outlook
PowerPoint
SharePoint
Microsoft Project
OpenOffice & LibreOffice
OnlyOffice
Mobiles
Mobiles
Android
iOS
Systèmes
Systèmes
Windows
Linux
Arduino
Hardware
HPC
Mac
Raspberry Pi
Réseau
Green IT
Sécurité
Systèmes embarqués
Virtualisation
TUTORIELS
FAQ
WEBINAIRES
LIVRES
TÉLÉCHARGEMENTS
SOURCES
DÉBATS
WIKI
DICO
HUMOUR
Voir le texte source
De WikiDeveloppez.
pour
Qt
Aller à :
Navigation
,
Rechercher
<rubrique id=65 /> [[Catégorie:Qt]] Qt est un [[framework]] logiciel très complet. Il est prévu pour être simple à utiliser, et multiplateforme. En effet, un code qui fonctionne sur une plateforme fonctionnera sans problème sur toute autre plateforme supportée par Qt. Il est développé en C++, mais peut très bien être utilisé avec [[Python]], grâce à [[PyQt]] ou à [[PySide]], ou bien en [[Java]], avec [[Qt Jambi]]. Il est distribué sous plusieurs licences : [[GPL]] (v3), [[LGPL]] (v2.1) et [[QPL]]. Même si ce n'est pas sa principale orientation, Qt peut être utilisé dans l'[[embarqué]] grâce à [[Qt Extended]]. Grâce à un outil spécifique, le [[moc]], Qt peut gérer les [[signaux]], les [[slots]] ou l'[[introspection]]. Cet outil est historique : il est présent dès la première version de Qt, et permettait, à l'époque, d'uniformiser le support des templates par les compilateurs '''Attention ! Qt n'est pas un sigle ! Il s'écrit avec le ''Q'' majuscule et le ''t'' minuscule. Ceci se prononce ''cute'', l'anglais pour mignon.''' Quelques [[EDI]] sont prévus pour être utilisés avec Qt : [[Qt Creator]] et [[Monkey Studio]], par exemple. [[Nokia]] fournit aussi des plug-ins d'intégration à [[Visual Studio]] et à [[Eclipse]]. Depuis les [[Qt Developer Days]] 2009, [[Nokia]] propose une certification Qt : le ''Qt Essentials Curriculum Block 1.0''. Cette certification concerne les bases du développement avec Qt, mais nécessite une expérience avec Qt. La communauté de Developpez.com vous propose des défis Qt : [http://qt.developpez.com/defis/ Les défis Qt]. == Programmes simples avec Qt == Ces exemples affichent une fenêtre avec un bouton, sur lequel <tt>Hello world!</tt> est écrit. === En C++ === <tt>#include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton hello("Hello world!"); hello.show(); return app.exec(); }</tt> === En Python avec PyQt4 === <tt>from PyQt4 import QtCore, QtGui import sys app = QtGui.QApplication(sys.argv) hello = QtGui.QPushButton("Hello World!", None) hello.show() app.exec_()</tt> === En Python avec PySide === <tt>from PySide import QtCore, QtGui import sys app = QtGui.QApplication(sys.argv) hello = QtGui.QPushButton("Hello World!", None) hello.show() app.exec_()</tt> === En C# avec Qyoto === <tt>using System; using Qyoto; public class HelloWorld { public static int Main(String[] args) { QApplication app = new QApplication(args); QPushButton hello = new QPushButton("Hello world!"); hello.Show(); return QApplication.Exec(); } }</tt> == Qt SDK == Dernièrement, [[Nokia]] a lancé le Qt SDK, qui contient un [[IDE]] ([[Qt Creator]]), un compilateur ([[GCC]]) et une version de Qt compilée. Ce SDK est disponible pour 4 plateformes : * Linux 32 bits (''x86'') ; * Linux 64 bits (''x86_64'') ; * Windows ; * Mac OS X. De nouvelles versions sortent régulièrement, apportant les dernières modifications apportées à Qt et à [[Qt Creator]]. === Historique === La version 2009.5 a apporté [[Qt Creator]] 1.3 et Qt 4.6.0. Elle est sortie le 1e décembre 2009. Elle avait été précédée par une RC 1, le 17 novembre 2009, avec les dernières versions de développement sorties à cette date. La dernière en date est la 2010.4. == Quelles sont les options pour créer une interface graphiques ? == Trois techniques sont actuellement possibles, sans oublier qu'elles peuvent être combinées : * [[Qt Designer]], qui crée des fichiers [[XML]] décrivant l'interface, édition graphique ; * le code, directement en C++, en utilisant les classes de widgets ; * [[Qt Quick]], une description déclarative des interfaces, édition graphique ou textuelle. == Modules == Ce [[framework]] est constitué d'une myriade de modules, disponibles dès Qt4. * QtCore * QtGui * QtNetwork * QtOpenGL * QtSql * QtXml * QtDesigner * QtAssistant * QtDBus (à partir de Qt 4.2) * QtScript (à partir de Qt 4.3) * QtSvg (à partir de Qt 4.1) * QtUiTools (à partir de Qt 4.1) * QtTest (à partir de Qt 4.1) * QtWebKit (à partir de Qt 4.4) * Phonon (à partir de Qt 4.4) * QtScriptTools (à partir de Qt 4.5) * QtMultimedia (à partir de Qt 4.6) * QtDeclarative (à partir de Qt 4.7) À ceux-ci s'ajoutent deux modules pour l'ActiveX : * QAxContainer * QAxServer === QtCore === Il s'agit du module principal de Qt, qui contient toutes des fonctions utiles, sans le moindre rapport direct avec les [[GUI]]. === QtGui === Il s'agit du module de conception de [[GUI]], qui se base sur le principe des [[widget|widgets]]. === QtNetwork === Il s'agit du module qui gère le réseau et le support de quelques protocoles réseau, comme [[HTTP]] ou [[FTP]]. === QtSql === Il s'agit de classes d'intégration de [[SGBD]] dans Qt, des interfaces pour tous les systèmes de base de données possibles. Pour pouvoir connecter une application à un [[SGBD]] particulier, il faut compiler le plug-in spécifique. Voici les [[SGBD]] supportés officiellement : * [[DB2]] * [[InterBase]] * [[MySQL]] * [[Oracle]] * [[ODBC]] * [[PostgreSQL]] * [[SQLite]] (versions 2 et 3) * [[TDS]] === QtOpenGL === Il s'agit de classes de support de [[OpenGL]] pour la [[3D]], qui peut donc parfaitement s'intégrer dans toute application Qt sans besoin de connaissances spécifiques d'[[OpenGL]]. === QtXml === Il s'agit de classes qui permettent d'utiliser les [[API]] [[DOM]] et [[SAX]] dans Qt. === QtDesigner === Il s'agit d'un ensemble de classes qui sert à étendre les fonctionnalités de [[Qt Designer]]. === QtAssistant === Il s'agit d'un ensemble de classes qui permet d'utiliser le système d'aide de [[Qt Assistant]] à l'intérieur d'une application. === QtDBus === Il s'agit d'un ensemble de classes qui facilitent les échanges entre les processus grâce à un démon [[DBus]] (originalement prévu pour [[UNIX]], il a été porté pour [[Windows]] par l'équipe [[KDE]]). === QtMultimedia === Il s'agit d'un ensemble de classes apportant des fonctionnalités multimédia à vos applications. === QtDeclarative === Il s'agit du module qui fait le lien entre [[Qt Quick]] et votre code [[C++]]. === QtScript === Il s'agit d'un ensemble de classes qui permettent l'évaluation de scripts Qt, qui utilisent un dérivé de l'[[ECMAScript]], la version standardisée de [[JavaScript]]. Désormais, pour des raisons de performances, QtScript utilise le module [[JavaScript]] de [[Webkit]], [[JavaScriptCore]]. === QtScriptTools === Il s'agit d'un ensemble de classes qui apporte des fonctionnalités supplémentaires aux scripts Qt. === QtSvg === Il s'agit d'un ensemble de classes qui permet l'affichage de fichiers [[SVG]]. === QtUiTools === Il s'agit d'un ensemble de classes qui permet d'utiliser des formulaires de [[Qt Designer]] dans une application. === QtTest === Il s'agit d'un ensemble léger de classes qui permet d'effectuer des [[Test unitaire|tests unitaires]]. === QtWebKit === Il s'agit d'une intégration à Qt du moteur de rendu [[WebKit]], notamment utilisé par [[Google]] [[Google Chrome|Chrome]]. === Phonon === Il s'agit d'un ensemble de classes qui permettent d'utiliser le [[framework]] [[Phonon]] dans une application. == Outils disponibles avec Qt == Qt est un framework complet, qui propose des méthodes simples, mais non simplistes, pour simplifier le développement. Par exemple, un designer graphique ou un éditeur de traductions. === Qt Designer === L'éditeur graphique d'interfaces utilisateurs. === Qt Linguist === L'éditeur de traductions. Il charge des fichiers .ts, créés par lupdate, afin de traduire une application. On peut charger plusieurs fichiers de traduction en même temps, afin de traduire une application en plusieurs langues simultanément. Cette fonctionnalité est assez rare dans les logiciels du genre. === moc === L'outil permettant de gérer l'entièreté des paradigmes de Qt (signaux et slots notamment) sur tous les compilateurs, sans être limité par la non-reconnaissance d'une technique ou un bug de l'un d'entre eux. === lupdate === L'outil permettant de récupérer les chaînes à traduire d'une application. Il peut les extraire des fichiers d'interface ([[.ui]]) et des sources du programme (pour autant que les chaînes à traduire soient protégées par ''tr()''). En extrayant les chaînes, il récupère des informations autour d'elles pour faciliter la traduction (il s'agit du contexte) : la classe qui utilise la traduction, par exemple. La fonction ''tr()'' peut prendre un second argument : il s'agit de la désambiguation, qui peut aussi aider à la traduction. Cet outil produit un fichier .ts, un dérivé du [[XML]], qui peut être lu par Qt Linguist, et ainsi traduit. Ce fichier .ts n'est pas prévu pour être directement utilisé par l'application : il faut qu'il passe d'abord par le compilateur, lrelease. === lrelease === L'outil permettant de compiler les traductions pour un chargement plus rapide. Il prend les fichiers XML .ts pour en produire des fichiers binaires pour les traductions, les fichiers .qm. Ces fichiers agissent comme des dictionnaires : Qt les charge, au moyen d'un QTranslator, et cherche la traduction de la chaîne passée en paramètre à tr(). === qmake === L'outil de génération : il automatise les appels aux outils de compilation requis. Il n'est pas limité à Qt : vous pouvez l'utiliser pour compiler toute sorte de projets, y compris des projets qui n'utilisent pas Qt. == Les certifications Qt == L'équipe de développement du framework Qt propose à ses développeurs une certification leur permettant de valider leurs compétences sur la technologie Qt. Actuellement, seule la certification Qt Essentials est disponible. Elle certifie que le candidat sait comment Qt fonctionne et peut développer une application. Ce niveau de certification concerne les aspects majeurs de Qt, principalement les modules QtCore et QtGui. La certification est un questionnaire à choix multiples de 50 questions avec des questions à réponse unique et des questions à réponses multiples. La durée du test est de 60 minutes (avec 30 minutes supplémentaires pour les non-anglophones d'origines ou pour les handicapés qui peuvent prouver leur handicap). La validation de la certification dépend du nombre de points validés par le candidat, mais ce nombre de points n'est pas encore fixé. Le nombre de points attribués à chaque question est différent en fonction du niveau de la question. La certification Qt Essentials coûte 149€ (199$). Une réduction de 50 % est attribuée au candidat qui échoue au premier examen. Il devrait y avoir une réduction pour les étudiants dans le futur. '''Voir aussi''' : * {{fr}} [http://qt.developpez.com/evenement/2009-devdays/conferences/certification/ ''Discover Qt Learning & Certification'', une conférence par Vladimir Minenko] * {{fr}} [http://qt.developpez.com/certification/presentation/ Présentation des certifications Qt] * {{fr}} [http://qt.developpez.com/certification/contenu/essentials/ Contenu de la certification ''Qt Essentials Curriculum Block 1.0''] == Ressources disponibles == [http://qt.developpez.com La rubrique Qt] de [http://www.developpez.com Developpez.com] vous propose quelques ressources pour faciliter votre utilisation de Qt. * {{fr}} [http://qt.developpez.com La FAQ Qt] ; * {{fr}} [http://www.developpez.net/forums/f376/c-cpp/bibliotheques/qt/ Les forums d'entraide Qt] ; * {{fr}} [http://qt.developpez.com/ Les dernières actualités sur Qt] ; * {{fr}} [http://qt.developpez.com/tutoriels/ Des tutoriels et articles Qt] ; * {{fr}} [http://qt.developpez.com/outils/ Des outils destinés à Qt] ; * {{fr}} [http://qt.developpez.com/livres/ Des livres sur Qt] ; * {{fr}} [http://blog.developpez.com/recap/qt Un blog sur l'actualité de Qt] ; * {{fr}} [http://qt.developpez.com/evenement/2006-devdays/ Des reportages sur les Qt Developer Days 2006] ; * {{fr}} [http://qt.developpez.com/evenement/2009-devdays/ Des reportages sur les Qt Developer Days 2009] ; * {{fr}} [http://qt.developpez.com/binaires/ Des binaires précompilés de Qt] ; * {{fr}} [http://qt.developpez.com/defis/ Les défis Qt]. Des ressources sur l'utilisation de Qt depuis ses bindings Python sont aussi disponibles. * {{fr}} [http://pyqt.developpez.com/ Les dernières actualités sur les bindings Python de Qt] ; * {{fr}} [http://www.developpez.net/forums/f172/autres-langages/python-zope/gui/pyqt/ Le forum d'entraide sur les bindings Python de Qt] ; * {{fr}} [http://pyqt.developpez.com/tutoriels/ Les meilleurs tutoriels sur les bindings Python de Qt] ; * {{fr}} [http://pyqt.developpez.com/faq/ La FAQ sur les bindings Python de Qt] ; * {{fr}} [http://pyqt.developpez.com/livres/ Les meilleurs livres critiqués sur les bindings Python de Qt].
Modèle:Fr
Modèle:Indication de langue
Revenir à la page
Qt
.
Affichages
Page
Discussion
Voir le texte source
Historique
Outils personnels
Identification
Navigation
Accueil
Modifications récentes
Toutes les pages
Aide
Forum Wiki
Rechercher
Boîte à outils
Pages liées
Suivi des liens
Importer un fichier
Pages spéciales
Contacter
le responsable de la rubrique Accueil
Nous contacter
Participez
Hébergement
Publicité / Advertising
Informations légales
© 2000-2024 - www.developpez.com