IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

Petit logiciel avec interface graphique : C++ et Qt ?


Sujet :

Qt

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut Petit logiciel avec interface graphique : C++ et Qt ?
    Bonjour,

    J'ai un petit projet personnel qui consiste à développer une application logicielle assez simple pour gérer ses comptes bancaires.

    Je connais C++ mais j'ai toujours fait des programmes en mode console et je les développais sous linux avec gedit, mais là du coup, pour mon application, je suis un peu perdu pour faire l'interface graphique, je ne sais pas trop comment m'y prendre...

    Déjà, laquelle me conseillez vous ? Qt ?

    Quel IDE me conseillez vous ? Visual Studio ou rester simplement sous linux avec mon gedit ?

    J'aimerais faire une application compatible pour windows.

    Merci de vos conseils.

    ++

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Qt je ne connais pas mais je pense que c'est très bien et cela a fait ses preuves..
    Il ya d'autres frameworks comme WxWidget

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut
    Oui les 2 ont l'air pas mal et ont l'air d'être les plus connus.

    La grande différence, si j'ai bien compris, c'est que pour Qt, c'est gratuit si le logiciel qu'on développe l'est également c'est ca ?

    ++

  4. #4
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Exact, apparamment QT est aussi plus simple et complet. (je dis ça de ce que j'ai vu mais je suis pas super connaisseur)

    En revanche dés que tu veux faire du commercial, QT n'est plus gratuit. wxWidgets si.

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut
    Par contre, je me demandais, est-ce que dans tous les cas, il faut que l'utilisateur installe quelque chose en plus pour pouvoir utiliser le logiciel ?
    Est-ce qu'il doit installer Qt si je fais mon programme avec ?
    WxWidget si je le fais avec ?
    Ou GTK par exemple ?

    C'est un peu lourd de devoir installer de grosses librairies si le programme qu'on fait est petit non ? Et surtout si l'utilisateur doit l'installer que pour ce programme ?

    Comment ca marche en général ?
    Les grands logiciels commerciaux par exemple ? Ils ont leur propre lib graphique ?

    Ou il y a une librairie natif standard dans windows qui fait qu'on ait rien d'autre à installer ? C'est peur etre MFC ? J'en ai déjà entendu parlé sans vraiment comprendre ce que c'est exactement...



    Et concernant les aspects, l'intégration dans le système d'exploitation ? Quelque soit la librairie, le logiciel s'intègre bien ? windows, linux ?
    Les librairies graphiques sont-elles identiques de ce côté ?


    Si quelqu'un peut m'éclaircir un peu la chose svp merci

    ++

  6. #6
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    bonjour,

    ce sont des librairies, donc il faut les distribuer avec ton application. en tout ca c'est le cas de Qt tu est obliger de distribuer la dll ou la .so selon l'OS.
    Dans les MFC il y a une "section/package" IHM, mais bon tu restera sous Windows du coup.
    enfin selon la compilation et l edition des liens on doit pouvoir feinter; avec une liaison statique les bouts de code nécéssaires seront peut etre dans l executable, a voir.

    Et pis pour l utilisation ben c'est des lib donc reglage du compilo/linker pour les utiliser pour Qt "tite" compilation avant de commencer (tite tite... 3 heures de compil quand meme).

    Et Qt, wxWigdet et Gtk( et Gtkmm wrapper C++) sont portables, MFC non.

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Même réponse que ta question dans le forum windows +
    A partir du moment où tu utilise une librairie (MFC, wxWidget pour ce que je connais, mais j'imagine la même chose pour Qt), le code de cette librairie doit être quelque part: soit sous forme de DLL que ton soft doit alors installer, soit dans ton exécutable et alors tu dois lié statiquement le code.
    QT: quand j'avais regardé, c'est gratuit uniquement si tu fais tu opensource, payant sinon. Et il me semble qu'il y avait une contrainte t'empêchant de commencer en open source et ensuite d'acquérir une licence payante. Le choix du payant devait se faire dès le début.
    wxWidget: toujours gratuit
    MFC: implicitement payant puisque disponible uniquement avec les versions payante de Visual.
    L'utilisation de l'API win32 (donc spécifique à windows) ne nécessite ni librairie spéciale (en fait, les dll sont déjà dans windows) ni ne sont payantes (les .h et lib sont fournis avec tous les compilo windows).

  8. #8
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Regarde http://qt.developpez.com/ et le forum associé, tu sauras si Qt te convient uniquement après avoir accumulé un certain nombre d'informations.

  9. #9
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut
    Oui donc si je ne veux pas me restreindre à un OS,
    MFC et l'API win32 sont à mettre de cotés.

    Donc mon choix doit se faire entre :
    Qt
    wxWidget
    GTK (gtkmm pour C++ ?)

    Licence
    GTK (gtkmm) et wxWidgets ont apparemment la même licence : LGPL
    Si je ne me trompe pas dans les licences et si j'en crois ce que j'ai lu dessus, avec ces bibliothèques, on peut donc utiliser ces librairies pour des logiciels open source ou commerciaux.
    En clair, il n'y a pas de restrictions quand à leur utilisation ?

    Concernant Qt, gratuit pour des logiciels gratuits et payant sinon...

    C'est bien résumé ?


    Look and feel ?
    Le look and feel est-il le même suivant les librairies ? Ca utilise les look and feel natifs des OS sur lequel le logiciel est exécuté ?
    Ou les apparences finales ne sont pas du tout les mêmes selon les librairies utilisées ?



    Petite dernière question...
    Je ne comprends pas, sur le site de wxwidgets, c'est marqué :
    wxWidgets lets developers create applications for Win32, Mac OS X, GTK+
    Pourquoi c'est marqué GTK ? wxWidget et GTK ne sont pas toutes les 2 des librairies graphiques ? Pourquoi ils disent que wxWidget permet de créer des applications pour GTK ?


    Sinon, je crois qu'il ne me reste plus qu'à essayer les 3 librairies pour me faire une idée et peut être que je me sentirai plus à l'aise avec l'une d'entre elle...

  10. #10
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    wxWidgets se base sur GTK+ pour les fenêtres sous Linux, sur l'API WIN32 pour les fenêtres sous Windows, et sur je ne sais plus quoi pour Mac.

    Qt quand à elle propose sont propre moteur d'affichage, donc indépendance totale avec la plateforme.

  11. #11
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Citation Envoyé par italiasky Voir le message
    GTK (gtkmm) et wxWidgets ont apparemment la même licence : LGPL
    Si je ne me trompe pas dans les licences et si j'en crois ce que j'ai lu dessus, avec ces bibliothèques, on peut donc utiliser ces librairies pour des logiciels open source ou commerciaux.
    Oui
    En clair, il n'y a pas de restrictions quand à leur utilisation ?
    Très peu, en effet, la LGPL fait parti des licences les moins restrictives

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Concernant Qt, gratuit pour des logiciels gratuits et payant sinon...
    Non, gratuit pour du open source, payant sinon

    Look and feel ?
    Le look and feel est-il le même suivant les librairies ? Ca utilise les look and feel natifs des OS sur lequel le logiciel est exécuté ?
    Ou les apparences finales ne sont pas du tout les mêmes selon les librairies utilisées ?
    wxWidgets utilise par défaut les contrôles natifs de l'OS, Qt non je crois qu'elle les redessines, GTK de même.

    Petite dernière question...
    Je ne comprends pas, sur le site de wxwidgets, c'est marqué :

    Pourquoi c'est marqué GTK ? wxWidget et GTK ne sont pas toutes les 2 des librairies graphiques ? Pourquoi ils disent que wxWidget permet de créer des applications pour GTK ?
    Comprendre que wxWidgets peu, entre autre, être compilée pour utiliser GTK en back-end et donc son look&feel.

    Sinon, je crois qu'il ne me reste plus qu'à essayer les 3 librairies pour me faire une idée et peut être que je me sentirai plus à l'aise avec l'une d'entre elle...
    Si la licence de Qt ne te gêne pas, y'a pas trop a hésiter en fait, elle est un cran au dessus toutes les autres.

  12. #12
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut
    Salut,,

    J'ai fait un essai avec Qt...

    Et le hic, c'est que je dois avoir 84,7*Mo de .dll avec mon exe pour que celui-ci marche... c'est énorme je trouve

    Surtout, si je veux faire une petite appli vraiment basique non ? Parce que si mon appli fait quelques méga + ces librairies, ca fait énorme je trouve... et le gros de la taille est occupée par les librairies... enfin de devoir faire télécharger un logiciel à des personnes tierces par exemple, qui fait 90Mo alors que c'est un logiciel basique, qui fait rien d'extra, ca fait peur non ?

    Est-ce qu'avec les autres bibliothèques, c'est pareil ? Les dll qu'il faut sont aussi grosses ?

    Je dois voir avec les MFC et l'API Win32 si je veux faire une appli beaucoup plus légère ?

    Merci
    ++

  13. #13
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut Qt c'est beau
    avec Qt t'as la possibilité de mettre plusieurs themes à tes interfaces graphiques comme windowsxp, cleanlooks, motif, cde , plastique etc
    avec une seule instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QApplication app(argc,argv);
    app.setStyle("cleanlooks");

  14. #14
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut
    Oui mais je comprend pas trop le rapport avec ma question...

    J'ai créé un simple projet avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <QApplication>
    #include <QPushButton>
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        QPushButton bouton("Salut les Zéros, la forme ?");
        bouton.show();
     
        return app.exec();
    }
    Et je suis obligé d'avoir 84,7*Mo de .dll avec mon exe pour qu'il s'execute...

    Est-ce normal ?

  15. #15
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par italiasky Voir le message
    Et je suis obligé d'avoir 84,7*Mo de .dll avec mon exe pour qu'il s'execute...

    Est-ce normal ?
    ???
    pourquoi tu devrait te trimbalé autant de dll???
    Qt est bien découper.
    Pour ton prog, il te suffit des dll de QtCore et QtGui

  16. #16
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut
    Ok, c'était en mode debug en fait les autres fichiers...

    Pour la release :
    il me faut :
    mingwm10.dll
    QtCored4.dll de 2,53 Mo
    QtGuid4.dll de 9,95 Mo

    Je suppose qu'on ne peut pas réduire la taille de ces fichiers ?

    Donc, tout logiciel fait avec Qt fera au minimum 12Mo environ...
    C'est un peu embetant quand c'est pour faire une toute petite appli qui fait au plus 2 Mo de devoir faire télécharger à l'utilisateur aussi 12 Mo non ?

    Comment font ceux qui font des petits logiciels ? De quelques mégas, 2 ou 3 ?
    Ils n'utilisent pas de bibliotheque graphique ?

    Merci
    ++

  17. #17
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Euh non pour la version compilée en Release de ton programme il faut juste que tu accompagnes le progamme des versions sans les 'd' à la fin des DLLs. C'est à dire : mingwm10.dll, QtCore4.dll, QtGui4.dll. Ces dll sont plus petites car il n'y a pas les symboles de debugging inclus.

  18. #18
    Membre éclairé Avatar de dorian833
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 223
    Par défaut
    Je suis un peu en retard pour ma réponse mais c'est pas grave :

    J'ai du aussi faire un choix de lib pour une IHM (toujours mon stage , pas eu l'occasion de m'en re-servir, quelque incompréhension pour faire fonctionner Qt et Xcode ) :
    - MFC : Windows Only (sacré restriction quand même), j'ai jamais réussi à m'y faire malgrès les quelques essais, je trouve la doc pas très pratique
    - wxWidget : Pas mal, sauf les connexions des signaux avec une syntaxe basic-like (sa m'a choqué ), néanmoins simple d'utilisation, plein de doc et tout et la licence LGPL (à quand la même pour Qt ^^)
    - Qt OpenSource : GPL ( bon après tout dépend de ce que tu veux faire), doc nikel, facile d'utilisation, plein de truc comme le XML, le réseau, ...

    Voilà, j'avais choisi Qt et sans regrès, mais bon tu l'as déjà choisi .

    Par contre au niveau de la taille de la librairie :
    Il est possible de compiler en statique ce qui permet de ne plus avoir de dll à balader avec son exécutable.

    Pour information, dans mon projet (Qt 4.4.0 OpenSource), je me sert des librairies :
    - QtCore
    - QtGui (Les 2 que l'on retrouve tout le temps)
    - QtXML
    - QtXMLPatterns (ou un truc du style)
    - QtNetwork

    Et mon exécutable fait 5.9Mo sans librairies qui se baladent au côté de l'exécutable (hormis celles d'Ogre3D mais c'est dû à sa licence) ce qui je pense est assez résonnable.

    J'avais compiler Qt et mon projet avec Visual Studio 2005 SP1 donc il a peut être faire quelques optimisation.

    Après comme l'a dit Alp, il faut bien faire gaffe au mode debug qui génère des lib et un exécutable nettement plus lourds.

  19. #19
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut
    Salut,

    J'ai essayé wxwidgets aussi, mais sous CodeBlocks, je n'arrive pas à faire fonctionner.... mais j'aurais bien aimé l'essayer aussi, si quelqu'un a un tuto pour l'installer et le faire fonctionner avec cet IDE, je suis preneur... parce que la je suis un peu perdu !

    Sinon, pour Qt, j'ai pris les dll dans le dossier C:\Qt\4.4.1\bin
    et les deux dll de base font bien :
    - QtCore : 2,53 Mo
    - QtGui : 9,95 Mo

    Alors que le programme en lui même n'est qu'un main qui ouvre une fenêtre...

    Donc, comment as-tu fait pour passer à 5,9 Mo avec les librairies + ton programme ? alors que la moi, ca fait déjà beaucoup plus...

    Masi est-ce que le fait de compiler en statique réduit la taille finale ou ca revient juste à incorporer les librairies dans l'exécutable ?

    J'utilise CodeBlocks... je ne sais pas trop comment compiler en statique pour voir si la taille final diminue...

    Bref, un peu perdu

    dorian833, toi qui a utilisé wxwidgets, la taille minimum des librairies (dll) à inclure, c'est comme Qt ? Environ 12 Mo ou beaucoup moins ?

    Merci
    ++

  20. #20
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par italiasky Voir le message
    Masi est-ce que le fait de compiler en statique réduit la taille finale ou ca revient juste à incorporer les librairies dans l'exécutable ?
    Pas tout à fait, il incorpore que le strict nécessaire dans ton exe.
    Aprés c'est un choix, si tu trouve cela assez gros, il faut mieux que tu regarde d'autre lib. Mais a part faire un truc totalement natif, j'ai peur que tu auras le même type de problème.

    L'avantage des dll, c'est qu'elle peuvent être partagé par plusieurs exe, et donc au final tu y gagne

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/05/2007, 14h33
  2. Réponses: 2
    Dernier message: 27/10/2006, 18h54
  3. Débugger avec interface graphique
    Par powerpsy dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 03/05/2006, 22h53
  4. Application multiplateforme avec interface graphique
    Par TNorth dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 31/01/2004, 18h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo