Developpez.com - Rubrique Qt

Le Club des Développeurs et IT Pro

Les futurs tutoriels Qt sur Developpez.com : quel tutoriel ou cours Qt aimeriez-vous voir sur Developpez.com ?

Le 2011-01-11 21:29:48, par dourouc05, Responsable Qt & Livres
Bonjour à tous,

Voici un sondage pour mieux connaître vos attentes et vos domaines préférés dans le vaste panel de l'environnement Qt. Pour faire bref : quel tutoriel ou cours Qt voudriez-vous voir paraître prochainement sur Developpez.com ?

N'hésitez pas à préciser votre vote :
Pourquoi ce domaine vous intéresse-t-il ?
Pourquoi auriez-vous besoin de ce cours/tutoriel?
Sous quelle forme le voudriez-vous : un cours théorique avec peu d'exemples ? un tutoriel pratique avec de nombreux exemples ? un exemple complet d'application ?
Quels points précis, du sujet sélectionné, vous posent problème ?
etc.

Naturellement, nous ne pouvons pas nous engager à produire la ou les demandes les plus populaires dans l'immédiat. Cependant, vos choix nous permettrons de connaître vos attentes et d'y répondre au mieux dans un avenir proche.

Note : avant de choisir, n'oubliez pas qu'il existe déjà un certain nombre de cours et de tutoriels sur Qt (voir en C++ et en Python). Si ce que vous souhaitez existe déjà, inutile de le redemander. En revanche, si un document ne correspond pas exactement à votre besoin, dites-nous lequel, ce qu'il lui manque, etc.

Vous avez envie d'écrire un de ces tutoriels ? Vous y songez depuis un certain temps sans oser franchir le pas ? N'hésitez pas non plus à nous contacter, nous vous aiderons à arriver au bout !

Merci d'avance pour votre participation !
  Discussion forum
19 commentaires
  • LittleWhite
    Responsable 2D/3D/Jeux
    J'ai dit OpenGL (comme par hasard) / Phonon (car j'ai eu des soucis, et y a peu de ressources (mais bon, la doc suffit pour les guerriers comme moi ) / Animation (car cela semble cool et qu'il faut qu'un jour je me penche dessus )

    Non, je ne peux pas écrire de tutoriels pour le moment ... je fais trop de choses :p
  • tyrtamos
    Expert éminent
    Bonjour,

    Je suis essentiellement intéressé par PyQt4 et plus tard par PySide, et ceci dans à peu près tous les domaines couverts par Qt.

    => Pourquoi ce domaine vous intéresse-t-il ?

    Je cherchais depuis longtemps une bibliothèque graphique puissante, et j'ai adopté PyQt4. Par exemple, j'apprécie la lecture/écriture de tables de base de données SQL avec contraintes d'intégrité référentielles.

    => Pourquoi auriez-vous besoin de ce cours/tutoriel?

    Parce que le peu de tutos sur le sujet, y compris en C++, rend le développement long et pénible. De plus, les quelques exemples en C++ ne sont pas facilement transposable en PyQt4. Et il y a des choses qui paraissent évidentes et qu'on ne peut pas trouver tout seul. Par exemple: j'ai essayé de construire un navigateur avec le webkit pour lire une aide en html, mais je n'arrive pas à faire fonctionner les liens hypertexte malgré plusieurs heures de recherche sur le web...

    => Sous quelle forme le voudriez-vous : un cours théorique avec peu d'exemples ? un tutoriel pratique avec de nombreux exemples ? un exemple complet d'application ?

    Essentiellement des "recettes" pratiques, avec des codes assez courts (entre 10 et 100 lignes) mais suffisamment complets pour permettre de transporter et d'exécuter des exemples par copier-coller.

    => Quels points précis, du sujet sélectionné, vous posent problème ?

    Curieusement, ce sont quelquefois des fonctions élémentaires qui me manquent. Par exemple, je sais obtenir un tri "français" sous SQL avec collate, mais je ne sais pas le demander avec une QTableView utilisée avec QtSql.

    Dernière suggestion: j'ai découvert par hasard des sources en Qt/Python ici: http://qt.developpez.com/telecharger/index/categorie/90/Sources-PyQt-et-PySide: ce serait super de les regrouper avec http://pyqt.developpez.com/tutoriels/.

    Comme j'ai déjà dit, Python est puissant, mais sans le graphique, ce n'est qu'un super langage de script. Avec une bibliothèque graphique comme PyQt4, on peut faire des applications graphiques complètes. Avec, par exemple, cx_freeze, on peut diffuser en multiplateforme sans nécessiter une installation compliquée. Et avec, par exemple, InnoSetup, on diffuse une version binaire installable sur Windows. Python devient alors un langage de développement complet comme un autre!

    Mais pour faciliter de tels développement, il y a du boulot...

    Tyrtamos
  • tyrtamos
    Expert éminent
    Quelques réflexions supplémentaires sur le sujet.

    Un développeur Python ne connait pas forcément le C++: tous les tutos PyQt et PySide doivent donc être accessible directement à partir de la page Python. Quitte à faire après les liens avec les tutos C++ à titre de compléments d'infos.

    Le domaine des bibliothèques graphiques est au moins aussi gros et certainement plus complexe que Python lui-même. Aussi, plutôt que de mélanger quelques tutos anodins dans les tutos Python, je préfèrerais carrément un bouton supplémentaire aux autres boutons du menu principal Python. Par exemple un bouton"BIB. GRAPHIQUES" à droite du bouton "LIVRES PYTHON", qui renverrait à toutes les bibliothèques graphiques (tkinter, PyGtk, PyQt4, ...). Cela permettrait de traiter complètement ces tutos et de faciliter leur recherche.

    En ce qui concerne les tutos, je verrais bien un accès par thème pratique, parce que c'est comme ça que j'ai à résoudre les problèmes. Par exemple, j'utilise beaucoup les tableaux "QTableWidget" pour la saisie de données. Pris comme ça, il vient tout de suite plein de problèmes pratiques liés à ce type d'utilisation. Par exemple, comment remplir les cases par des combobox, des cases à cocher, etc... Comment convertir automatiquement des minuscules accentuées en majuscules non accentuées. Comment trier une colonne selon le dictionnaire français. Comment saisir de façon contrôlée un numéro de téléphone, contrôler la validité de la saisie d'une adresse mail. Comment activer ou désactiver la saisie de certaines cases. Comment mettre en couleur certaines cases, etc... Bien sûr, on peut retrouver tout cela en cherchant dans le C++, et c'est ce que j'ai fait, mais non d'un chien: qu'est que c'est pénible... Par contre, quand on a trouvé, c'est beau et ça marche très bien!

    Tyrtamos
  • dourouc05
    Responsable Qt & Livres
    Envoyé par tyrtamos
    De plus, les quelques exemples en C++ ne sont pas facilement transposable en PyQt4.
    Tu peux regarder de ce côté-ci pour quelques exemples avec PySide : http://qt.gitorious.org/pyside/pysid.../HEAD/examples. Je n'ai pas d'installation de PyQt (et il me semble qu'il n'y a pas de repo public), donc je ne pourrai rien te dire de plus précisément là-dessus, mais il semble que la version 4.8.2 inclue de nombreux nouveaux exemples.

    Envoyé par tyrtamos
    Essentiellement des "recettes" pratiques, avec des codes assez courts (entre 10 et 100 lignes) mais suffisamment complets pour permettre de transporter et d'exécuter des exemples par copier-coller.
    Quelque chose comme ceci mais plus fourni ? http://pyqt.developpez.com/telecharg...PyQt-et-PySide. Il y a aussi moyen d'afficher directement du code sur les pages de présentation (comme ici : http://pyqt.developpez.com/telecharg...dans-son-cadre).

    Envoyé par tyrtamos
    Dernière suggestion: j'ai découvert par hasard des sources en Qt/Python ici: http://qt.developpez.com/telecharger/index/categorie/90/Sources-PyQt-et-PySide: ce serait super de les regrouper avec http://pyqt.developpez.com/tutoriels/.
    Ce ne sera bientôt plus un hasard, puisqu'un bouton est en cours d'ajout dans la barre en haut. Maintenant, je ne vois pas comment regrouper sources et tutoriels... Faire une page qui présente les deux ? Ça n'irait pas dans le sens de tous : certains comme toi préfèrent un bon morceau de code, d'autres préfèrent surtout l'introduction du code, avoir quelqu'un qui le décortique presque ligne par ligne, surtout quand on débute. Sinon, on peut facilement mettre un lien de l'un vers l'autre.

  • dourouc05
    Responsable Qt & Livres
    Envoyé par tyrtamos
    Un développeur Python ne connait pas forcément le C++: tous les tutos PyQt et PySide doivent donc être accessible directement à partir de la page Python. Quitte à faire après les liens avec les tutos C++ à titre de compléments d'infos.
    C'est justement un projet en cours de finalisation ! Ça devrait être opérationnel la semaine prochaine. Il y a déjà des liens dans la page des tutos Python : http://python.developpez.com/cours/?...GUI#PyQtPySide.

    Envoyé par tyrtamos
    Aussi, plutôt que de mélanger quelques tutos anodins dans les tutos Python, je préfèrerais carrément un bouton supplémentaire aux autres boutons du menu principal Python. Par exemple un bouton"BIB. GRAPHIQUES" à droite du bouton "LIVRES PYTHON", qui renverrait à toutes les bibliothèques graphiques (tkinter, PyGtk, PyQt4, ...). Cela permettrait de traiter complètement ces tutos et de faciliter leur recherche.
    Le problème, c'est que, actuellement, à part en tout trois tutoriels pour Tkinter, wxPython et PyGTK, tous mis dans le même bol, il n'y a rien comme ressources. Cela ne peut pas justifier l'ajout d'un bouton pour le moment. Cependant, comme on commence à avoir pas mal de ressources sur PyQt/PySide, c'est ce qui est prévu pour la semaine prochaine.

    Envoyé par tyrtamos
    En ce qui concerne les tutos, je verrais bien un accès par thème pratique, parce que c'est comme ça que j'ai à résoudre les problèmes. Par exemple, j'utilise beaucoup les tableaux "QTableWidget" pour la saisie de données. Pris comme ça, il vient tout de suite plein de problèmes pratiques liés à ce type d'utilisation. Par exemple, comment remplir les cases par des combobox, des cases à cocher, etc... Comment convertir automatiquement des minuscules accentuées en majuscules non accentuées. Comment trier une colonne selon le dictionnaire français. Comment saisir de façon contrôlée un numéro de téléphone, contrôler la validité de la saisie d'une adresse mail. Comment activer ou désactiver la saisie de certaines cases. Comment mettre en couleur certaines cases, etc... Bien sûr, on peut retrouver tout cela en cherchant dans le C++, et c'est ce que j'ai fait, mais non d'un chien: qu'est que c'est pénible... Par contre, quand on a trouvé, c'est beau et ça marche très bien!
    Pour cela, il me semble qu'on ait déjà une solution disponible : ajouter ces quelques questions et leurs réponses dans une catégorie QTableWidget de la FAQ. Puisque tu t'es déjà posé toutes ces questions et que tu as trouvé la solution, tu pourrais les rédiger toi-même ! Chaque QR peut bien sûr être extraite d'un tutoriel, que l'on pourrait mettre en lien en bas de la QR pour complément d'informations sur le sujet. Actuellement, tout ce qui concerne les bindings de Qt est en grand chantier, il y a une rubrique PyQt & PySide qui s'annonce fortement, on tente de voir s'il serait intéressant de faire de même pour Qt Jambi. Le problème, à chaque fois, est d'avoir d'un côté des ressources à proposer et de l'autre d'avoir des personnes pour s'en occuper (rédaction de tutoriels, modération des forums, responsable(s) pour chapeauter le tout, etc.). Si tu veux aider à apporter toutes ces ressources, cela ne peut qu'être profitable à tout le monde !

  • tyrtamos
    Expert éminent
    Avec une bibliothèque graphique aussi puissante que Qt, on peut réaliser avec Python des programmes graphiques complexes, et ce dans des domaines très différents (bureautique, multimedia, base de données relationnelles, réseaux, jeux, etc...) et en multiplateforme (Windows-Linux-Mac).

    Aussi, je suggère un "prolongement" de nos tutos Python-Qt: comment fait-on la diffusion de ces supers programmes graphiques?

    Si la diffusion consiste à obliger l'utilisateur potentiel à commencer par installer une dizaine de programmes dont certains avec compilation, avant de faire fonctionner le nôtre, la diffusion risque d'être très très limitée...

    Heureusement, il existe des solutions au moins partielles, malheureusement sous-documentées, et nécessitant souvent des adaptations. On peut citer par exemple py2exe, cx_freeze, pyinstaller permettant à nos scripts d'être accompagnés de toutes les bibliothèques pour une exécution "standalone". Je viens cependant de faire l'expérience avec cx-freeze et Ubuntu pour un programme PyQt4, et je n'ai réussi qu'avec de lourdes adaptations, documentées nulle part sur le web (je ferai un tuto).

    En plus, une fois cet assemblage fait, on aimerait pouvoir faire un "paquet" permettant une installation standard sur l'OS cible. Sous Windows, innosetup marche assez bien (je ferai un tuto), mais je n'ai pas encore trouvé comment faire un paquet rpm ou dev sous Linux.

    Bref, je propose que ces solutions de "diffusion des applications Python-Qt" fassent partie de nos préoccupations, car la capacité de diffuser élégamment nos programmes graphiques me semble faire partie des motifs pour lesquels on se lance dans de tels projets.

    Tyrtamos
  • JolyLoic
    Rédacteur/Modérateur
    J'ai voté autre. Pourquoi ? Ça fait déjà quelques temps que je ne fais plus de Qt, j'en suis resté aux tous débuts de la version 3. Et plus qu'un tutoriel, ce qui m'intéresserait serait une série d'articles me permettant de savoir si ça vaudrait le coup que je m'y replonge. Par exemple :
    - Quoi de neuf dans Qt (et pas uniquement tel ou tel nouveau widget, mais surtout quels changements d'architecture).
    - Qt comparé à d'autres bibliothèques d'IHM (pas facile comme article, il faut quelqu'un qui ait une bonne connaissance de deux bibliothèques). En particulier, j'ai pas mal bossé avec WPF ces temps-ci, et cette bibliothèque présente des concepts qui n'étaient clairement pas dans Qt2 (qui est plus proche des winforms en .NET) et qui sont très intéressants. Je serais curieux de savoir comment Qt se positionne actuellement par rapport à ces concepts (en particulier binding, template, composition d'objets).
  • dourouc05
    Responsable Qt & Livres
    Envoyé par Txiki
    Bonjour,
    Personnellement je veux un tuto sur la façon avec la quelle ont peut rechercher tous les visages dans une photo ou quelque chose comme ça (comme par ex dans les appareils photo numérique)
    Merci!
    Ça, ce n'est pas tellement de l'utilisation de Qt, on utilisera plus à cet effet OpenCV pour le traitement. Sinon, cela relève entièrement de la rubrique Algos : http://algo.developpez.com/
  • guillaume07
    Débutant
    un tutorial sur les delegates, par exemple pour personaliser une case d'un tableau ou d'une combobox
  • rambc
    Membre chevronné
    Bonjour,
    pour ma part, c'est la partie PyQt qui m'intéresse même si le passage du code C++ à Python est faisable relativement facilement.

    Une fonctionnalité peu présentée, à ma connaissance, est la communication entre PyQt-Qt et du JavaScript. L'exemple aussi de type tableur, simplifié bien entendu, serait un bon moyen de comprendre les tables.

    Proposer aussi des exemples de jeu de type snake ou autres via les animations pourraient aussi beaucoup me plaire.

    Voilà quelques idées parmi la foule des choses que j'aimerais comprendre sur PyQt.