Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Un updater avec Qt


Sujet :

Qt

  1. #1
    Responsable Qt & Livres

    Un updater avec Qt
    Bonjour,

    Début de cette année sortait la traduction du tutoriel officiel de Qt 4.4 : Débuter dans la création d'interfaces graphiques avec Qt 4. Vous y avez appris la base de la création d'interfaces graphiques (GUI) avec Qt.

    Mais vous n'êtes pas sans savoir que Qt, ce n'est pas que des interfaces graphiques : il s'agit d'un framework extrêmement complet, qui peut gérer le réseau, le XML, la traduction, les bases de données... Mais on peut encore l'améliorer, lui ajouter des fonctionnalités : par exemple, la compression de flux. D'autres y ont déjà pensé, et ont proposé des librairies complètes d'ajout de fonctionnalités à Qt : Qwt (graphiques), QCA (cryptographie)...

    Tout ceci, vous ne l'avez pas encore découvert avec ce tutoriel : cette lacune est actuellement comblée.

    Prenant pour fil rouge la création d'un updater, un programme qui permet de télécharger des mises à jour distantes, cette série d'articles va vous proposer de découvrir toutes ces facettes de l'existence de Qt.

    Petit détail pour la suite : les sources de l'updater sont disponibles sur un repository SVN, vous pouvez suivre l'avancement du programme, et donc du tutoriel, au jour le jour.



    Un updater avec Qt : l'introduction
    Un updater avec Qt : le téléchargement de fichiers



    Qu'attendez-vous de cette série ? L'attendiez-vous ?

    Profitez aussi de ce topic pour commenter les articles ! Par contre, si vous avez des problèmes avec le code source ou pour la compréhension d'une partie du tutoriel, vous pouvez demander des explications dans le forum Qt.

    Voir aussi : Le forum Qt, les cours et tutoriels Qt, et la FAQ Qt.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Membre expérimenté
    Bonne idée ça, un tuto sur un updater, les tutoriels sur une telle fonction sont rares
    It's not a bug, it's a feature

  3. #3
    Expert éminent sénior
    C'est une très bonne idée, un tel composant est très utile. Mais je suis réservé sur le choix de la license : GPL. Pourquoi pas LPGL, tout comme Qt ?

    A noter qu'il existe un updater assez évolué dans le GCF (GPL / commercial) :
    http://www.vcreatelogic.com/products/gcf/

  4. #4
    Membre régulier
    +1, je pense que ce sera trés instructif et trés utile.
    Par contre le cas ou l'application été déjà ouverte (donc fichier non supprimable sous windows) sera t'il exposé?
    Developpeur d'Ultracopier et Supercopier
    CatchChallenger, mmorpg old school hautes performances, insensible aux latences, support de i2p/tor, multiple gameplay.

  5. #5
    Responsable Qt & Livres

    Citation Envoyé par alpha_one_x86 Voir le message
    +1, je pense que ce sera trés instructif et trés utile.
    Par contre le cas ou l'application été déjà ouverte (donc fichier non supprimable sous windows) sera t'il exposé?

    Le but est principalement de faire découvrir des fonctionnalités autres que les GUI dans Qt, mais il n'est pas impossible que ce problème soit exposé.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #6
    Membre du Club
    très interessant. J'attends déjà avec impatience, car je trouve que ce sera assez instructif pour moi.
    Surtout, bon courage lors de l'élaboration

  7. #7
    Membre régulier
    Je vais suivre ca de trés trés prés.

    Je ne connaissais pas du tout le système metalink ça à l'air prometteur.

    Vous parlez d'envoyer un mail à un serveur qui renverra aux inscrits ; le serveur est à coder aussi ?

    En tout cas bravo j'ai hate de lire les premières lignes

    Bonne soirée

  8. #8
    Membre actif
    Je trouve l'idée très intéressante ! Merci à vous !
    Un clavier Azerty en vaut deux.

  9. #9
    Responsable Qt & Livres

    Citation Envoyé par geek-59600 Voir le message
    Vous parlez d'envoyer un mail à un serveur qui renverra aux inscrits ; le serveur est à coder aussi ?

    Non, je me baserai sur de l'existant (par exemple, sendmail). Rien de cette partie n'est encore prévu, donc il est possible que cela change du tout au tout.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  10. #10
    Responsable Qt & Livres

    Bonjour,

    Vous pouvez désormais consulter la deuxième partie de cette série. Nous allons maintenant rentrer dans le vif du sujet : le téléchargement de fichiers, et leur écriture sur le disque dur. D'abord en théorie : quelles classes peut-on utiliser, comment les utiliser ; puis en pratique, par la création de notre première fenêtre, qui proposera un bouton pour lancer la mise à jour, sans plus.

    Y sont abordés :
    - Le gestionnaire d'accès (QNetworkAccessManager et cie),
    - Les fichiers (QFile).

    Bonne lecture !
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  11. #11
    Membre régulier
    Dans le .pro il manque le network, ce qui fait que avec Qt creator sous linux ça ne marche pas.
    QT += network
    Developpeur d'Ultracopier et Supercopier
    CatchChallenger, mmorpg old school hautes performances, insensible aux latences, support de i2p/tor, multiple gameplay.

  12. #12
    Membre régulier
    Je vais plus tarder à devoir implémenté un updater pour ultracopier donc en Qt, je sais pas si tu compte continuer ce tuto ou si tu veux que je te fasse un base de code?
    Ce que je vais implémenté:
    Updater pour l'exe principal. Updater pour les plugins (une fois le système de plugin codé).
    Developpeur d'Ultracopier et Supercopier
    CatchChallenger, mmorpg old school hautes performances, insensible aux latences, support de i2p/tor, multiple gameplay.

  13. #13
    Responsable Qt & Livres

    Tu as déjà la base, le strict minimum pour faire ton updater : le téléchargement de fichiers (même si ce n'est pas grand chose). Pour l'update de l'exe, tant que tu l'utilises, ce n'est pas possible : il faut le modifier depuis un programme externe (update.exe), puis tu écrases l'actuel. Si c'est pour mettre à jour l'updater, il faut télécharger le nouvel updater à côté, le lancer, puis le copier à la place de l'ancien, qui supprimera le téléchargement dès uq'on n'en aura plus besoin. Pour mettre à jour Qt : utiliser un updater linké statiquement. Puis, pouvoir télécharger plusieurs fichiesr : ça ne devrait pas poser trop de problèmes, tant que tu connais leurs emplacements. Pour avoir la version XML, attends le prochain tuto (presque fini...).

    Je viens de remarquer ton message précédent, je viens d'en tenir compte.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  14. #14
    Membre du Club
    Bonjour,

    Je suis pas mal le tuto dessus mais malheureusement il n'avance plus depuis un bout de temps déjà donc je voulais juste savoir si c'était prévu qu'une personne ou que l'auteur poursuive le tuto ?

    Je sais que l'auteur est assez déborder donc je pose la question

    Merci

  15. #15
    Responsable Qt & Livres

    Salut,

    Il est toujours prévu de faire avancer le tuto, mais je suis de plu sen plus débordé, et ça ne devrait pas s'arranger avant un certain temps. La partie suivante est déjà bien avancée (il ne manque que la partie pratique, dans le code, mais il faut le pondre). Pour le moment, personne ne s'est proposé pour continuer cette partie, donc c'est par la force des choses assez dur de le faire avancer.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  16. #16
    Membre du Club
    Ok pas de problème, c'est dommage que personne ce propose c'est un tuto qui va servir à beaucoup de monde à mon avis...

  17. #17
    Membre du Club
    Bonsoir,

    je voulais savoir si le tuto avait avancé depuis le temps ?
    Si il est toujours en activité ou complètement abandonné ?

    Merci

  18. #18
    Responsable Qt & Livres

    Rien n'a malheureusement pu avancer ces derniers temps, pas plus qu'avant. Dans ma tête, il n'est pas abandonné ; je n'ai cependant pas le temps ni le courage de m'y remettre pour le moment.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  19. #19
    Membre du Club
    Ok dommage merci quand même.

  20. #20
    Nouveau membre du Club
    une petite erreur, et un grand merci
    bonjour, je viens de lire ce tuto.

    je regrette qu'il soit au point mort mais je remercie déjà l'auteur pour tout ce qu'il à pu écrire à ce sujet.
    Juste une remarque : dans le handler, le membre request est déclaré sur la pile d'une des fonctions.
    Il est a priori inutile que cet objet soit un membre de la classe.


    bonne journée