IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Tous les téléchargements de Sve@r

Expert éminent sénior

    Liste chainée

    3
    0
    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
    Code source - Licence : Abandonware - Publié le 31/12/2022 - Auteur : Sve@r +

    Afficher le contenu d'un dossier

    2
    0
    Pour faire suite au reader CSV, ce programme affiche le contenu d'un dossier.
    On lui donne un dossier et il affiche dans une zone de droite tous les fichiers du dossier. Et si on sélectionne un fichier, il affiche son contenu dans une zone de gauche.

    On pourra y trouver une évolution intéressante apporté par papajoker et basée sur une délégation de style qui permet à tout fichier non lisible pour une raison ou une autre (problème de droit par exemple) d'être marqué en rouge dans la zone de droite (zone de listing). Et si on y revient alors qu'il est redevenu lisible (problème résolu) il ... Voir la suite
    Code source - Licence : LGPL - Publié le 30/03/2024 - Auteur : Sve@r +

    Reader CSV

    2
    0
    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é).
    Cet exemple est disponible dans les versions PyQt5, PyQt6 et PySide6.

    La suite sera afficher un dossier...
    Code source - Licence : LGPL - Publié le 30/03/2024 - Auteur : Sve@r +

    Convertisseur basique PyQt5 vers PyQt6

    2
    0
    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
    Code source - Licence : ActiveState Community - Publié le 19/10/2024 - Auteur : Sve@r +

    Course de threads

    0
    0
    Pour enchainer sur Le QThread de Tyrtamos, ici un petit jeu de course de threads.
    On place les coureurs, on paramètre le circuit et run, ne reste qu'à parier. Absolument aucun intérêt autre que ludique et/ou apprendre à gérer les threads.
    Cet exemple est disponible dans les versions PyQt5, PyQt6 et PySide6.
    Code source - Licence : LGPL - Publié le 11/05/2025 - Auteur : Sve@r +

    Avec un canon, on peut tout faire.

    0
    0
    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 est disponible dans les versions PyQt5, PyQt6 et PySide6.

    La suite sera Doux comme un agneau.
    Code source - Licence : LGPL - Publié le 11/04/2025 - Auteur : Sve@r +

    Face au mur.

    0
    0
    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 est disponible dans les versions PyQt5, PyQt6 et PySide6.
    Code source - Licence : LGPL - Publié le 11/04/2025 - Auteur : Sve@r +

    Game Over.

    0
    0
    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 est disponible dans les versions PyQt5, PyQt6 et PySide6.

    La suite sera Face au mur.
    Code source - Licence : LGPL - Publié le 11/04/2025 - Auteur : Sve@r +

    Accrochons des briques en l'air.

    1
    0
    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 est disponible dans les versions PyQt5, PyQt6 et PySide6.
    La suite sera Game Over.
    Code source - Licence : LGPL - Publié le 11/04/2025 - Auteur : Sve@r +

    Tire-lui dessus !

    1
    0
    Après Doux comme un agneau, cette troisième partie rajoute une gestion et un affichage des tirs.
    Toujours dans l'évolution du jeu et surtout de la partie "dessin", cette dernière ne met à jour que ce qui change à l'affichage.
    Cet exemple est disponible dans les versions PyQt5, PyQt6 et PySide6.

    La suite sera Accrochons des briques en l'air.
    Code source - Licence : LGPL - Publié le 11/04/2025 - Auteur : Sve@r +

    Doux comme un agneau.

    0
    0
    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 est disponible dans les versions PyQt5, PyQt6 et PySide6.

    La suite sera Tire-lui dessus.
    Code source - Licence : LGPL - Publié le 11/04/2025 - Auteur : Sve@r +

    Traiter des fichiers en thread

    1
    0
    Pour enchainer sur Le QThread de Tyrtamos, cet exemple montre faire traiter des fichiers divers dans des thread.
    Le but est de pouvoir sélectionner plusieurs fichiers, chaque fichier sera alors itéré dans un QThread ligne par ligne et chaque ligne traitée par un traitement défini par callback.
    Cet exemple est disponible dans les versions PyQt5, PyQt6 et PySide6.
    Code source - Licence : LGPL - Publié le 09/05/2025 - Auteur : Sve@r +

    Le QThread de tyrtamos

    2
    0
    Après It's time, cet exemple montre comment intégrer un QThread dans une application.
    Le but est de déléguer un travail à un QThread ce qui laisse alors la boucle de traitement des évènements Qt libre pour faire autre chose (ici afficher une barre de progression en fonction de l'avancée du travail).
    Il est important de noter que sous aucun prétexte le QThread ne doit toucher aux widgets gérés par la boucle principale (sinon crash probable). Donc la seule façon qu'a le QThread pour interfacer les widgets est de passer par des signaux récupérés par le(s) widget(s) de l'application.
    Cet exemple m'a été largement inspiré par un exemple de Voir la suite
    Logiciel - Licence : LGPL - Publié le 09/05/2025 - Auteur : Sve@r +

    Soyons widgets

    0
    0
    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 est disponible dans les versions PyQt5, PyQt6 et PySide6.

    Il sera suivi par Les widgets.
    Code source - Licence : LGPL - Publié le 08/05/2025 - Auteur : Sve@r +

    Terminer proprement l'application

    0
    0
    Ce second exemple PyQt complète le Hello World et montre comment associer le bouton à une action afin de terminer proprement l'application.
    Cet exemple est disponible dans les versions PyQt5, PyQt6 et PySide6.

    Il sera suivi par Les valeurs usuelles.
    Code source - Licence : LGPL - Publié le 08/05/2025 - Taille 1 Ko - Auteur : Sve@r +

    Les valeurs usuelles

    0
    0
    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 est disponible dans les versions PyQt5, PyQt6 et PySide6.

    Il sera suivi par Soyons widgets.
    Code source - Licence : LGPL - Publié le 08/05/2025 - Taille 1 Ko - Auteur : Sve@r +

    Construire des widgets en vrac

    0
    0
    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 est disponible dans les versions PyQt5, PyQt6 et PySide6.

    Il sera suivi par Relier les widgets en vrac.
    Code source - Licence : LGPL - Publié le 08/05/2025 - Taille 2 Ko - Auteur : Sve@r +

    Les widgets

    0
    0
    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 est disponible dans les versions PyQt5, PyQt6 et PySide6.

    Il sera suivi par Construire des widgets en vrac.

    Code source - Licence : LGPL - Publié le 08/05/2025 - Auteur : Sve@r +

    It\'s time...

    0
    0
    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 est disponible dans les versions PyQt5, PyQt6 et PySide6.

    Il sera suivi par Le QThread de tyrtamos
    Code source - Licence : LGPL - Publié le 08/05/2025 - Auteur : Sve@r +

    Et avec du style !!!

    1
    0
    Après Du stretching au splitting, cet exemple montre comment rajouter une petite fenêtre de configuration permettant d'utiliser les styles Qt pour modifier le style général de l'application.
    Accessoirement, les fenêtres commençant à devenir nombreuses, il montre aussi comment mémoriser des éléments de travail dans un dictionnaire situé dans l'application principale ; et à récupérer ce dictionnaire dans les autres fenêtres permettant ainsi à ces fenêtres de récupérer les informations principales de l'application.
    Cet exemple est disponible dans les versions PyQt5, PyQt6 et PySide6.

    Il sera suivi par Voir la suite
    Code source - Licence : LGPL - Publié le 08/05/2025 - Auteur : Sve@r +