Tous les téléchargements de Sve@r
|
|
Bonjour à tous
Devant les nombreuses demandes récurrentes de ce forum concernant des exemples de listes chainées, j'ai décidé d'en écrire un complet. Il s'agit d'une liste doublement chainée avant/arrière permettant de stocker une information quelconque. Dans cet exemple,l'information est un nom, un prénom et un âge mais la structure décrivant l'information, ainsi que les fonctions de manipulation de cette information étant bien séparées de la liste proprement dite, l'utilisateur n'aura (j'espère) aucun mal à y rajouter les champs de son choix. Le programme se contente de stocker 4 informations distinctes dans l'ordre alphabétique nom puis prénom ; et de les afficher. Puis il supprime une de ces informations ... Voir la suite |
|
|
|
|
Après Mappons notre signal, cet exemple montre comment gérer les étirements relatifs des widgets les uns par rapport aux autres.
Accessoirement il montre aussi comment créer son propre "à propos" personnalisé. Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. Il sera suivi par Du stretching au splitting. |
|
|
|
|
Après Les étirements ou... stretching, cet exemple montre comment créer des widgets variants (agrandir l'un faisant alors réduire l'autre).
Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. Il sera suivi par Et avec du style. |
|
|
|
|
Après Les widgets, cet exemple montre comment créer différents widgets personnalisés et les relier ensembles. Il montre aussi comment passer les boutons standard Qt (oui/non/annuler/etc...) dans le langage local.
Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. Il sera suivi par Relier les widgets en vrac. |
|
|
|
|
Après Soyons widgets, cet exemple montre comment créer et connecter différents widgets entre eux en utilisant leurs signaux et leurs slots. Il montre aussi une utilisation succinte du gestionnaire de redimensionnement et comment intercepter et bloquer l'évènement de fermeture de fenêtre pour se protéger d'une fermeture accidentelle de l'application.
Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. Il sera suivi par Construire des widgets en vrac. |
|
|
|
|
Après Les valeurs usuelles, ce nouvel exemple montre comment on peut créer son propre objet personnel hérité d'un widget pour l'enrichir par exemple avec une surcharge personnalisée des méthodes du widget.
Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. Il sera suivi par Les widgets. |
|
|
|
|
Après Construire des widgets en vrac, cet exemple montre comment relier un widget à plusieurs autres qui se comporteront à l'identique lors de l'action.
Accessoirement il renforce la vision "objet" des choses en offrant son propre objet dédié à l'application et montre aussi comment créer son propre slot qui, ici, modifie la transparence de la fenêtre. Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. Il sera suivi par Du widget au mainwindow. |
|
|
|
|
Suite aux exemples PyQt commencés avec le Hello World, je vous propose divers utilitaires très basiques en Python/PyQt.
Ce programme permet de lire et d'afficher tout type de fichier CSV, quel que soit son séparateur. Il découpe le CSV et l'affiche proprement dans des lignes et colonnes bien séparées. Il peut même afficher des fichiers non CSV (mais dans ce cas le résultat n'est pas forcément assuré). Ce programme est disponible en version Python3/Qt5 et en version Python3/Qt6. La suite sera... |
|
|
|
|
Et pour compléter le Game Over, on termine en rajoutant la possibilité de manipuler directement le canon à la souris, ainsi qu'une gestion de la vitesse de jeu. Une barrière permet aussi de corser la difficulté. Et on finit avec quelques raccourcis claviers et un message final amélioré pour le fun.
Petit jeu à 2 balles certes, mais surtout écrit pour montrer les mécanismes Qt. Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. |
|
|
|
|
En continuant de Accrochons des briques en l'air, on rajoute une gestion du score et une limitation des tirs. Plus un bouton pour redémarrer le jeu. Ce qui donne toutefois une gestion de signaux assez conséquente mais on arrive à un jeu presque fonctionnel.
Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. La suite sera Face au mur. |
|
|
|
|
Repartant sur les bases déjà mises dans Tire-lui dessus, cette quatrième partie ajoute une cible dans le ciel et peut distinguer un tir réussi d'un tir raté.
Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. La suite sera Game Over. |
|
|
|
|
Après Doux comme un agneau, cette troisième partie rajoute une gestion et un affichage des tirs.
Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. Toujours dans l'évolution du jeu et surtout de la partie "dessin", cette dernière ne met à jour que ce qui change à l'affichage. La suite sera Accrochons des briques en l'air. |
|
|
|
|
Après Terminer proprement l'application, ce nouvel exemple montre comment associer différents widgets. Il introduit à cet effet la notion de "parenté" Qt qui permet à un objet Qt de connaitre les objets qui lui sont intégrés et surtout de faire en sorte qu'un objet fils réagisse avec son père (réduire le père fait alors réduire le fils).
Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. Il sera suivi par Soyons widgets. |
|
|
|
|
Après Et avec du style, cet exemple montre comment automatiser une action par le biais d'un timer qui actionnera une (ou plusieurs) tâche(s) à intervalles répétés.
Accessoirement, il montre aussi le QTableWidget, élément graphique permettant de ranger des informations en lignes et colonnes. Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. Il sera suivi par Le QThread de tyrtamos |
|
|
|
|
Après Emettons notre signal, cet exemple y rajoute un splash screen, une fenêtre pouvant à la fois servir de fenêtre de bienvenue et afficher des messages d'attente pour tromper l'ennui si l'application doit effectuer un travail préparatoire peut-être un peu long avant d'être accessible à l'utilisateur.
Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. Il sera suivi par Mappons notre signal. |
|
|
|
|
Je vous propose une suite d'exemples PyQt5/PyQt6 librement inspirés du fameux (mais malheureusement aujourd'hui désuet) tutoriel PyQt4 et permettant d'apprendre à démarrer une application PyQt.
Ce premier exemple est un simple exemple de Hello World. Il contient juste le minimum pour créer une application Qt visuelle. Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. La suite sera Terminer proprement l'application. Quand le lecteur aura fini de suivre tous ces exemples permettant de l'initier à la technologie Qt ... Voir la suite |
|
|
|
|
Après Relier les widgets en vrac, cet exemple remplace le widget standard par un mainwindow, un widget un peu particulier pouvant contenir un menu et une barre d'état et servant donc généralement de widget principal dans une application.
On y rajoutera aussi la possibilité d'avoir un ascenseur lorsque le widget est trop grand pour être affiché dans son intégralité. Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. Il sera suivi par Emettons notre signal. |
|
|
|
|
Suite aux exemples PyQt commencés avec le Hello World, je vous propose de construire un petit jeu lui aussi librement inspiré du fameux tutoriel PyQt4.
Cette première partie pose les bases du jeu (dessiner le canon et le faire pivoter selon l'angle choisi). Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. La suite sera Doux comme un agneau. |
|
|
|
|
Cette seconde partie fait suite à celle présentée dans Avec un canon, on peut tout faire en y rajoutant le contrôle de la force et en enrichissant un peu l'affichage. Pour l'instant cette force n'est reliée à rien mais cela évoluera dans la partie suivante.
Dans une philosophie d'optimisation, la partie "dessin" a été un peu modifiée pour ne redessiner que l'affût du canon quand on fait évoluer l'angle de visée. Cet exemple contient une version Python3/Qt5 et une version Python3/Qt6. La suite sera Tire-lui dessus. |
|
|
|
|
M'étant récemment mis à PyQt6, j'ai constaté quelques changements, surtout en ce qui concerne les constantes PyQt5 (exemple Qt.yellow) qui sont devenues énumérations (ici Qt.GlobalColor.yellow).
Ayant un gros paquet de sources à convertir, et vu le nombre de constantes à traiter, j'ai décidé d'écrire un automate convertisseur PyQt5 vers PyQt6 en Python. L'usage est simple: on lui donne en paramètre le(s) fichier(s) PyQt5 et il crée pour chacun une copie PyQt6. Il n'est pas forcément complet (je n'y ai mis que ce que j'avais déjà trouvé) mais la table de conversion (un dictionnaire) est facilement évolutive au besoin. Et en petit bonus, un petit truc rapide que j'avais préalablement créé pour "trouver" une constante ... Voir la suite |
|
|