Developpez.com - Rubrique Python

Le Club des Développeurs et IT Pro

Introduction et prise en main de PyQt

Le binding Python pour le framework Qt, par Olivier Girardot

Le 2010-08-18 20:16:12, par o.girardot, Membre confirmé
Bonjour,
Voici un nouveau tutoriel python servant d'introduction au développement rapide d'application avec Python et PyQt. Cet article présente un peu QtDesigner et comment faire une simple application en Python en utilisant un binding Python pour la librairie C++ Qt : PyQt.

J'espère qu'il vous plaira et toute remarque est la bienvenue,

http://ogirardot.developpez.com/introduction-pyqt/

Olivier.
  Discussion forum
12 commentaires
  • johnlamericain
    Rédacteur
    Article très intéressant !

  • _skip
    Expert éminent
    Chouette article pour se lancer!
  • o.girardot
    Membre confirmé
    très honnetement je les trouve très agréable à utiliser, et surtout rapide et peu verbose. Un peu dans l'esprit pythonique.

    Une chose regretable c'est peut-être le fait que ce soit des bindings et pas des projets indépendants comme QtJambi, mais bon l'intéraction en c++ est tellement simple que ça se comprend aussi.

    Merci en tout cas pour la remarque positive, ca va me motiver pour finir les autres articles
  • zwyn_
    Nouveau Candidat au Club
    Je suis peut-être une nouvelle espèce en voie d'apparition sur le site , celle de ceux qui se mettent à la programmation à plus de 50 ans pour pouvoir trouver du travail dans l'IT. De ce fait ,il m'est un peu plus difficile d'assimiler certaines notions et après 6 mois de Python ,réputé d'approche élémentaire , mais d'approche seulement , je me sentais un peu largué . Grâce à vos explications didactiques ,j'ai repris quelqu'espoir . Et je vous assure qu'au cours ça fait bizarre d'avoir des profs bien souvent 15 ans plus jeune que soi ,mais ainsi va la vie. Dans une semaine j'ai ma seconde session et on verra bien mais je ne suis guère optimiste pour autant... Je dois aussi présenter un projet avec QT Designer ,c'est dire...
  • o.girardot
    Membre confirmé
    Je suis très content d'avoir pu vous aider, et n'hésitez pas à me contacter si vous avez besoin de quelconques explications, concernant python ou PyQt/PySide, ça ne me dérange aucunement.

    Pour vous rassurer, je ne trouve pas Python plus facile que n'importe quel autre langage, au contraire il faut s'adapter à son mode de penser et à sa structure parfois un peu trop censé être intuitive pour être logique .
    Chacun apprends à son rythme et à tout age.

    Je vous souhaite en tout cas bonne chance et merci pour votre commentaire, n'hésitez pas à me re-contacter si vous avez besoin de précision ou un point que vous ne comprenez pas.
    Si je n'avais qu'un seul conseil à vous donner, c'est qu'en informatique, au contraire de nombreux domaines, la connaissance est libre et les discussions abondantes, seulement beaucoup de ressources de qualité sont en anglais (sauf developpez.com ). Ainsi n'oubliez jamais de toujours Googler vos questions en français puis au tout hasard en anglais.

    Bonne soirée,

    Olivier.
  • Bescu
    Futur Membre du Club
    Bonjour,

    Tout d'abord merci, j'essaye de me mettre à PyQT après avoir construit quelques petites appli sur Tkinter et ce tutorial est bien sympa, d'autant plus que dans mon cas, il s'agit de créer une interface client pour renseigner une base de données Sqlite : un peu comme dans votre exemple.

    Par contre je ne comprends pas pourquoi le code concernant les connections entre les signaux et les slots n'a pas été mis complétement. Justement cela m'intéresse de voir comment définir plusieurs action dans le slot mais également d'aller récupérer le texte que l'utilisateur à tapé dans le QLineEdit.

    J'ai essayé de télécharger les fichiers de "ShipHolder.zip" mais le lien semble mort.

    Merci d'avance,

    Maxime
  • fred1599
    Expert éminent
    De ce fait ,il m'est un peu plus difficile d'assimiler certaines notions et après 6 mois de Python
    6 mois de python c'est largement insuffisant pour assimiler les bases python.
    Pour PyQt, il faut plus de temps, mais le faire avec QtCreator, c'est pire!!!

    Parce-que faire l'interface et générer le code ça va, mais l'interpréter pour le réutiliser selon son application, bon courage.

    Un conseil, si vous voulez connaître et lire les codes générés avec QtDesigner, le plus simple est de se taper le code à la main, vous apprendrez nettement plus vite.

    Ensuite QtDesigner deviendra plus rapide une fois la compréhension PyQt/python acquise...
  • VinsS
    Expert éminent
    @ Bescu, dans l'exemple donné les signaux utilisent l'ancienne syntaxe, tu trouveras ici [1] la doc nécessaire pour les signaux "New-style".

    Pour ta question sur les actions, on ne définit qu'une seule action par connexion mais tu peux connecter un même widget à plusieurs slots.

    Je confirme que le lien du fichier est mort.

    [1] http://www.riverbankcomputing.co.uk/...als_slots.html
  • Bescu
    Futur Membre du Club
    Merci pour le lien Vinz, je vais regarder tout ça! J'ai réussi à parvenir à mes fins entre temps en renvoyant le signal à un slot "fonction" et en récupérant l'entrée d'une ligne avec la méthode .text()
  • Cenwen
    Membre régulier
    Très bel article cependant j'émets deux remarques.

    La 1ere concerne les captures d'écran qui sont complètement obsolètes, ce qui ne m'a pas empéché de réaliser l'interface graphique avec QT Designer/QtCreator.

    La 2eme serait, pour les débutants comme moi, de plus détaillés les noms de la classe, de l'interface lors des imports des fichiers .ui et Ui_Groupbox. Cela prete à confusion.

    @Vinss
    Je suis assez interrésé par le lien concernant la documentation sur les nouveaux signaux cepndant le lien que tu donnes n' est pas valide. Par avance Merci.