Bonjour,

Parmi les questions posées ici concernant PyQt, j'en vois souvent qui suggèrent l'insuffisance d'accès à un outil d'aide. Or, Qt/PyQt est une bibliothèque très complexe, et développer sans avoir une aide en accès permanent me semble quasi impossible.

Dans les outils d'aide disponible, il y a bien entendu l'aide de PyQt4 sous forme html, mais elle est imparfaitement traduite en python, et il n'est pas facile de naviguer dedans.

Mais il y a aussi et surtout l'Assistant de Qt, fait pour accueillir les fichiers d'aide de Qt-C++ en format ".qch": comment obtenir cette aide?

Sous Linux, si je prends l'exemple de Linux Mint 15 (et donc probablement les Ubuntu et Debian récents), l'Assistant est fourni par le paquet "Qt4-dev-tools", et les fichiers d'aide .qch par le paquet "Qt4-doc".

Sous Windows, c'est moins évident, parce que le binaire .exe fourni pour l'installation donne tout, y compris l'Assistant, sauf les fameux fichiers .qch! On va voir comment les obtenir:

Je vous propose donc sous Windows, la manip suivante:

- télécharger le Qt SDK de la version qui vous intéresse: http://qt-project.org/downloads, mais il n'est pas utile de l'installer (sauf pour développer en Qt-C++!).

- ouvrir ce fichier avec, par exemple, 7-zip pour le décompresser. Accéder au répertoire $OUTDIR\bin\doc\qch\ qui contient tous les fichiers d'aide de Qt en format .qch: les décompresser quelque part.

- lancer l'Assistant de Qt (livré avec PyQt pour Windows). Accéder au menu: Edition => Préférences => onglet Documentation. Cliquer sur le bouton "Ajouter" et sélectionner les fichiers .qch qui viennent d'être décompressées.

=> ça y est: vous avez toute la documentation de Qt en version C++ d'origine dans l'Assistant.


Vous n'avez pas besoin de savoir développer en C++ pour l'utiliser avec Python: il suffit de connaître un peu de syntaxe C++, et en particulier la déclaration des types.

Cet Assistant de Qt est beaucoup plus pratique que de naviguer dans les pages html. Selon le projet que vous développez, vous pouvez rechercher (=> fonction recherche) n'importe quelle classe, et la conserver dans la liste pour y accéder par un simple clic. Pour un projet donné, j'ai souvent une liste d'une quarantaine de classes Qt en ligne. Et dans une page qui parle d'une classe et qui cite une autre classe avec un hyperlien, un simple clic droit => nouvel onglet ajoute cette nouvelle classe: il est difficile de trouver plus rapide.

Et une fonction très pratique qu'il n'y a pas dans la doc PyQt en html mais que j'utilise souvent: on peut lister sur demande tout ce qui concerne une classe, y compris tout ce qu'elle a hérité!. Par exemple, on peut retrouver dans la classe QWidget les méthodes tr et trUtf8 héritées de QObject!

Bien entendu, pour coder en PyQt4, il faut en plus avoir, cette fois en html dans un navigateur, la partie "référence" de PyQt4 qui explique les particularités de Python dans l'utilisation de Qt.