
La FAQ pour la programmation C++ avec QtConsultez toutes les FAQ
Nombre d'auteurs : 25, nombre de questions : 223, dernière mise à jour : 25 août 2012
La troisième version de Qt a été largement améliorée avec la sortie de la dernière version majeure : Qt 4. Qt est maintenant disponible sur les trois plateformes traditionnelles sous triple licence. Ce framework a été retravaillé en profondeur, bien des objets ont été transformés, supprimés ou ajoutés, afin de permettre à l'utilisateur de la bibliothèque de profiter pleinement de la puissance offerte par Qt.
Ici, l'équipe rédactionnelle souhaiterait remercier tous ceux qui ont contribué à cette FAQ : 0x4e84, Amnell, Alp, Aurélien Régat-Barrel, dourouc05, frifri59, Gulish, haraendil, Ikipou, IrmatDen, johnlamericain, Kinji1, LeGars, LittleWhite, Mac&Cheese, Matthieu Brucher, Niak74, nouknouk, Nykoo, Shugo78, superjaja, sysedit, Troudhyl, yan, YoniBlond.
FAQ lues fois.
Table des matières
1. Introduction à Qt4 et généralités
(16)
- Qu'est ce que Qt ?
- Quels applications et produits utilisent Qt ?
- Quelle est la licence d'utilisation de Qt 4 ?
- Où trouver la documentation de Qt ?
- Que sont les Qt Quarterly ?
- Que sont les Qt Labs ?
- Qu'est-ce que le Qt Developer Network ?
- Qui est Digia ?
- Quels sont les chemins des en-têtes à inclure lors de la compilation ?
- Comment débuter avec Qt ?
- Est-ce compliqué d'utiliser Qt 4 ?
- Quels sont les avantages de l'édition commerciale ?
- Un développeur quitte l'entreprise, peut-on transférer la licence Qt à un autre développeur ?
- Peut-on développer des applications commerciales avec PerlQt, PyQt ou tout autre wrapper ?
1.1. Contribuer
(2)
2. Contenu de Qt4
(2)
3. Généralités techniques
(22)
- Que faudrait il connaître au minimum du C++ pour bien utiliser Qt ?
- Comment optimiser avant distribution ?
3.1. Mémoire
(3)
3.2. La compilation
(8)
- Comment compiler des projets utilisant Qt 4 ?
- Comment avoir des classes utilisant Q_OBJECT sans .h ?
- Comment compiler Qt ?
- Comment cross-compiler Qt ?
- Quand et comment réaliser une compilation 'statique'?
- Comment utiliser une bibliothèque externe dans mon projet ?
- Quelles sont les dépendances de Qt ?
- Quels sont les compilateurs utilisables avec Qt ?
3.3. Les différents systèmes supportés
(2)
3.4. Le modèle objet de Qt
(7)
3.4.1. QObject
(7)
- Un new sans delete ?
- Erreur d'édition des liens undefined reference to 'vtable for xxx' ?
- Allouer sur le tas ou sur la pile des QObject et dérivés ?
- Héritage multiple avec QObject ?
- Peut-on utiliser des pointeurs intelligents sans danger avec des QObject ?
- Comment faire un delete sur un QObject de manière sûre ?
- Un QObject en tant que membre d'une classe ?
4. Modules
(131)
4.1. QtCore
(66)
4.1.1. Signaux et slots
(8)
- Les signaux et autres slots ?
- Comment s'interfacent les signaux et les slots ?
- Comment créer ses propres signaux et slots avec transmission de valeurs ?
- Comment utiliser les auto-connexions ?
- Comment paramétrer un slot selon les objets qui lui sont connectés ?
- Quelles sont les différentes méthodes d'exécution d'un slot ?
- Comment récupérer et utiliser l'objet déclencheur d'un slot ?
- Comment récupérer et utiliser l'objet déclencheur d'un slot avec QSignalMapper ?
4.1.2. Événements
(2)
4.1.3. QApplication
(2)
4.1.4. QString
(10)
- Faut-il utiliser les pointeurs avec QString ?
- Comment transformer un QString en std::string et réciproquement ?
- Comment convertir un QString en chaîne C (char *) ?
- Comment formater du texte avec QString ?
- Comment convertir un nombre en chaîne de caractère ?
- Comment formater les nombres entiers ?
- Comment convertir un QString en un nombre ?
- Comment formater les nombres réels ?
- Comment tester si une chaîne de caractère est vide ?
- Comment QString gère l'encodage des chaînes de caractères ?
4.1.5. Fichiers et répertoires
(22)
4.1.5.1. Opérations de base
(10)
- Comment effacer un fichier ?
- Comment vérifier si un fichier existe ?
- Comment copier un fichier ?
- Comment récupérer le chemin des répertoires spéciaux ?
- Comment sélectionner un nom de fichier ou répertoire à partir d'une boîte de dialogue ?
- Comment lister les fichiers d'un répertoire et de ses sous-répertoires ?
- Comment connaître le chemin du répertoire courant ?
- Comment récupérer le chemin du répertoire de l'exécutable ?
- Comment récupérer le contenu d'un QIODevice dans un QString ?
- Comment lister tous les lecteurs disponibles sous Windows ?
4.1.5.2. Lecture et écriture
(3)
4.1.5.3. Récupérer des informations
(9)
- Comment obtenir des informations de fichiers ?
- Comment obtenir les informations des fichiers d'un dossier ?
- Comment récupérer le nom de fichier ?
- Comment distinguer les fichiers des dossiers ?
- Comment vérifier les droits sur un fichier ?
- Comment récupérer l'emplacement d'un fichier ?
- Comment savoir s'il s'agit d'un bundle ? (Mac OS X)
- Comment obtenir la date de dernière modification ?
- Comment récupérer la taille d'un fichier ?
4.1.6. Thread
(9)
- Comment fonctionne QThread ?
- Pourquoi ne faut-il pas faire de traitement IHM dans un thread ?
- Comment est définie l'appartenance aux threads des objets Qt ?
- Comment utiliser les threads avec Qt ?
- Comment se passe une connexion entre threads ?
- Comment manipuler un mutex ?
- Comment mettre en pause un QThread ?
- Comment utiliser le système de signaux et de slots avec des threads ?
- Comment équilibrer le temps CPU ?
4.1.7. Temps
(6)
4.1.8. Ressources
(1)
4.1.9. QSettings
(2)
4.1.10. QProcess
(2)
4.1.11. Internationalisation
(1)
4.1.12. Divers
(1)
4.2. QtGui
(40)
4.2.1. Généralités
(21)
4.2.1.1. Assistants
(7)
- Quelles sont les techniques pour créer un assistant ?
- Comment créer un assistant ?
- Comment créer une page d'un assistant ?
- Comment traduire un assistant ?
- Comment choisir le style d'un assistant ?
- Comment personnaliser un assistant ?
- Comment modifier un bouton ou insérer un bouton personnalisé dans un assistant ?
4.2.1.2. Style
(5)
4.2.1.3. Images/icônes
(5)
4.2.1.4. Glisser/déposer
(1)
4.2.1.5. Interaction avec l'environnement
(3)
4.2.2. Systèmes d'affichage
(19)
4.2.2.1. QWidget et layouts
(7)
- Comment ajouter un lien vers une page HTML ?
- Comment créer un écran de démarrage ?
- Comment valider des entrées utilisateurs dans une zone d'édition ?
- Comment manipuler du texte sélectionné avec QTextCursor ?
- Comment obtenir et modifier la position de la souris à l'écran ?
- Comment récupérer l'identifiant système d'une fenêtre ou d'un widget ?
- Comment afficher un widget dans une zone MDI ?
4.2.2.2. Système de peinture et impression
(3)
4.2.2.3. Gestion des fenêtres
(1)
4.2.2.4. Item View
(6)
4.2.2.5. Graphics View
(2)
4.3. QtXml
(4)
4.4. QtNetwork
(15)
- Comment retrouver l'IP d'un domaine et vice versa ?
4.4.1. Gestionnaire d'accès
(7)
- Comment fonctionne le système de gestionnaire d'accès ?
- Comment envoyer un fichier par le protocole HTTP ?
- Comment utiliser un proxy ?
- Comment définir un proxy par défaut ?
- Comment récupérer l'avancement du téléchargement ?
- Comment récupérer la source d'une page Internet ?
- Comment mettre en place un cache ?
4.4.2. Sockets
(2)
4.4.3. QHttp
(5)
- Comment télécharger une page Web avec QHttp ?
- Comment exécuter une requête simple sur un serveur avec la méthode GET ?
- Comment exécuter une requête avec envoi d'information sur un serveur avec la méthode GET ?
- Comment exécuter une requête avec envoi d'informations sur un serveur avec la méthode POST ?
- Comment récupérer un cookie avec QHttp ?
4.5. Phonon
(6)
5. Outils
(2)
6. Plug-ins (QLibrary)
(3)
7. Intégration avec d'autres bibliothèques
(4)
7.1. Généralistes
(4)
8. Bibliothèques complémentaires
(43)
- Comment gérer le port série ?
8.1. Qwt 5
(13)
- Qu'est ce que Qwt ?
- Quels types de composants puis je créer avec Qwt ?
- Est il difficile d'utiliser Qwt ?
- Comment installer Qwt ?
- Comment insérer un composant Qwt dans mon application Qt ?
- Comment créer un repère dans mon interface ?
- Comment changer la couleur de fond de mon repère ?
- Comment ajouter une courbe sur mon repère ?
- Comment changer la couleur de ma courbe ?
- Comment ajouter une grille à mon repère ?
- Comment ajouter des grilles seulement horizontales/verticales ?
- Comment spécifier les valeurs de mes axes ?
- Comment ajouter un outil de zoom sur mon repère ?
8.2. QCA
(7)
8.3. QxOrm
(22)
- Qu'est-ce que QxOrm ?
- Quelles sont les bases de données prises en compte par QxOrm ?
- Comment compiler QxOrm ?
- Comment contacter QxOrm pour indiquer un bogue ou poser une question ?
- Pourquoi QxOrm nécessite-t-il un en-tête précompilé (precompiled header) pour être utilisé ?
- Est-il possible de diminuer les temps de compilation d'un projet ?
- Comment activer/désactiver le module QxMemLeak pour la détection automatique des fuites mémoire ?
- Quels sont les différents types de sérialisation disponibles ?
- Comment déclarer une classe définie dans un espace de nom (namespace) dans le contexte QxOrm ?
- Pourquoi QxOrm fournit-il un nouveau type de conteneur qx::QxCollection<Key, Value> ?
- Pourquoi QxOrm est dépendant de deux bibliothèques : boost et Qt ?
- Pourquoi QxOrm fournit un nouveau type de pointeur intelligent qx::dao::ptr<T> ?
- Faut-il utiliser les pointeurs intelligents ?
- Comment utiliser les déclencheurs ?
- Comment définir une clé primaire sur plusieurs colonnes (composite key) ?
- La clé primaire est de type long par défaut. Est-il possible d'utiliser une clé de type QString ou autre ?
- Comment déclarer une classe abstraite dans le contexte QxOrm ?
- Comment utiliser les déclencheurs ?
- Comment utiliser les sessions pour simplifier la gestion des transactions des bases de données ?
- Comment utiliser le mécanisme de suppression logique (soft delete) ?
- Comment gérer la notion d'héritage avec la base de données ?
- Faut-il utiliser QString ou std::string ?



