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 Creator Discussion :

Utilisation de Qt Creator après la création d'un projet Qt Designer [Débuter]


Sujet :

Qt Creator

  1. #1
    Futur Membre du Club
    Homme Profil pro
    En retraite
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : En retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Utilisation de Qt Creator après la création d'un projet Qt Designer
    Bonjour.

    Après avoir lu un certain nombre de tuto, je me suis lancé dans la bagarre.
    J'ai créer une appli avec qt designer ( en suivant comme modele :
    "A Quick Start to Qt Designer" ) avec une FORM de type widget. J'utilise simplement 2 listwidget.
    Je dispose donc d'un fichier ui et donc je peux générer un fichier my_designer_app.h
    Maintenant de l'autre coté, j'ai besoin d'un fichier .pro, .cpp, ....
    En lisant le tuto : "Using a Designer UI File in Your Application", il me semble qu'il manque une brique.
    Dans Qt Creator, je suppose que je créé un projet "mon_projet_widget" basé sur la classe widget et que j'applique le principe des modifications indiquées dans le tuto "Using a Designer UI File in Your Application", sur l'application nouvellement créee ("mon_projet_widget" ) ?

    Une aide sera la bien venue.

  2. #2
    Rédacteur/Modérateur
    Avatar de arnolddumas
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Autriche

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 978
    Points : 7 764
    Points
    7 764
    Par défaut
    Je suppose que tu parles de ce tutoriel : http://qt-project.org/doc/qt-4.8/des...ick-start.html ?

    Tout d'abord, saches qu'il est plus commun de créer une application à base de QMainWindow qu'à base de QWidget. Typiquement, les QWidget sont des briques pour construire ton interface graphique.

    Pour revenir à ton problème, tu devrais simplement créer un nouveau projet avec Qt Creator et non Qt Designer, ce qui créera un fichier .pro, un fichier main.cpp, deux fichiers relatifs à ta classe héritant de QMainWindow ainsi qu'un fameux fichier pour Qt Designer. Qt Designer ne sert pas à manipuler du code mais simplement à modifier l'interface graphique. Qt Creator est l'EDI officiel du framework Qt, c'est lui qui sert à développer la logique de l'application.

    Sinon pour utiliser le fichier .ui, on fait géneralement comme ça :

    Dans le fichier maClasse.cpp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include "maClasse.h"
    #include "ui_maClasse.h"
     
    MaClasse::MaClasse(QWidget *parent) : QMainWindow(parent), ui(new Ui::MaClasse)
    {
        ui->setupUi(this);
    }
     
    MaClasse::~MaClasse()
    {
        delete ui;
    }
    et dans maClasse.h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #ifndef MACLASSE_H
    #define MACLASSE_H
     
    #include <QMainWindow>
     
    namespace Ui 
    {
        class MaClasse;
    }
     
    class MaClasse : public QMainWindow
    {
        Q_OBJECT
     
        public:
     
        explicit MaClasse(QWidget *parent = 0);
        ~MaClasse();
     
        private:
     
        Ui::MaClasse *ui;
    };
     
    #endif // MACLASSE_H
    Dans cet exemple, MaClasse hérite de QMainWindow, c'est évidemment à adapter au type dont on veux hériter, potentiellement QWidget.

    J'espère que tout est plus clair maintenant.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    En retraite
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : En retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par arnolddumas Voir le message
    Je suppose que tu parles de ce tutoriel : http://qt-project.org/doc/qt-4.8/des...ick-start.html ?
    OUI entre autre.

    Le probleme c'est que dans QT Creator, je ne peut pas entrer dans le moduke design. Donc sans me poser de question j'ai utiliser QT Designer pour faire l'implementation graphique.

    Donc nouvelle question : comment fait on l'implementation graphique sous QT Creator.

    Mais peut etre faut-il que j'installe QT depuis les sources QT et non pas depuis les binaires SUSE

    Je suis sous linux OpenSuse 12.3.
    Linux 3.7.10-1.16-desktop #1 SMP PREEMPT Fri May 31 20:21:23 UTC 2013 (97c14ba) x86_64 x86_64 x86_64 GNU/Linux

    Bon. Merci pour votre réponse que je vais étudié des demain matin.

  4. #4
    Rédacteur/Modérateur
    Avatar de arnolddumas
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Autriche

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 978
    Points : 7 764
    Points
    7 764
    Par défaut
    Si je comprends bien, il t'est impossible d'ouvrir le .ui dans le designer visuel de Qt Creator ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    En retraite
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : En retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par arnolddumas Voir le message
    Si je comprends bien, il t'est impossible d'ouvrir le .ui dans le designer visuel de Qt Creator ?
    Pas exactement. Le bouton "Designer" est indisponible ( grayed )

    Trouvé sur google un bug opensuse : https://bugzilla.novell.com/show_bug.cgi?id=692648.
    Je vais essayer d'installer le produit a partir des source.
    Je vous tiens au courant.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    En retraite
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : En retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    J'ai desinstallé qt creator version opensuse.
    J'ai installé la derniere version disponible sur le site : 2.8.1
    J'ai chargé un exemple (findfiles) pour vérifier si tout est bien installé.

    Bien entendu cela ne fonctionne pas :
    1ere erreur corrigée grace à google : il a fallu ajouter dans le fichier pro.

    Maintenant j'ai une erreur presque à chaque line.
    Je vous en donne les premiere :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/lib64/qt4/examples/dialogs/findfiles/window.cpp:56: error: invalid use of incomplete type 'class QLabel'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/lib64/qt4/examples/dialogs/findfiles/window.h:49: error: forward declaration of 'class QLabel'
    .......
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/lib64/qt4/examples/dialogs/findfiles/window.cpp:65: error: 'QGridLayout' was not declared in this scope
    Une aide serait la bien venue

    Google --> j'ai remplacé /* #include <QWidget> */ par #include <QtWidgets>

    Maintenant il me reste provisoirement 1 seule erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/lib64/qt4/examples/dialogs/findfiles/window.cpp:237: error: 'class QHeaderView' has no member named 'setResizeMode'
    Le compilateur suggere de remplacer 'setResizeMode' par 'setSectionResizeMode'.
    Ok cela marche; du moins je n'ai plus d'erreur et le programme se lance.
    Comment se fait il que les exemples ne fonctionne pas ?.

    En utilisant l'exemple "findfiles", la non plus je ne peux pas ouvrir le module design. A moins que cela soit interdit par le type de projet proposé par cet exemple.

    Mais dans ce cas comment sont positionnés les éléments? Comment modiefie t'on l'agencement des composants ?

    Citation Envoyé par arnolddumas Voir le message
    Tout d'abord, saches qu'il est plus commun de créer une application à base de QMainWindow qu'à base de QWidget
    Ce que je souhaite c'est que toute la mise en place ( Le visuel ) se fasse sans taper une ligne de code. JE souhaite positionner tous les objets graphiques puis ensuite taper le code.

    Citation Envoyé par arnolddumas Voir le message
    Typiquement, les QWidget sont des briques pour construire ton interface graphique.
    C'est ce que je pensais faire.

    Faut il alors developper a partir des Qt Quick ?

  7. #7
    Futur Membre du Club
    Homme Profil pro
    En retraite
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : En retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Ok.
    J'ai créer un nouveau projet de type Qt GUI Application.
    J'ai accès au module design.

    Je continu demain.

  8. #8
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Citation Envoyé par jcdole Voir le message
    /usr/lib64/qt4/examples/dialogs/findfiles/window.cpp
    Ça, ça veut dire des exemples Qt 4 (reliquats ?).

    Citation Envoyé par jcdole Voir le message
    J'ai installé la derniere version disponible sur le site : 2.8.1
    Si tu as juste installé Qt Creator, rien ne pourra fonctionner, il te faut une version de développement de Qt. Si tu as téléchargé Qt 5.1.1, tu as normalement un Qt Creator 2.8.1 – cas le plus probable, apparemment.

    En mélangeant les deux, toutes ces erreurs sont normales : tu mélanges du Qt 4 et du Qt 5, deux versions majeures. S'ils ont changé le numéro de version à 5, c'est pas pour rien : des choses ont changé, les sources ne sont plus parfaitement compatibles, il faut changer certaines lignes – très exactement le genre de choses que tu as remarquées.

    Prends les exemples dans le dossier de Qt 5, tout sera bien compatible.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou 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 !

  9. #9
    Futur Membre du Club
    Homme Profil pro
    En retraite
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : En retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    Ça, ça veut dire des exemples Qt 4 (reliquats ?).

    Si tu as juste installé Qt Creator, rien ne pourra fonctionner, il te faut une version de développement de Qt. Si tu as téléchargé Qt 5.1.1, tu as normalement un Qt Creator 2.8.1 – cas le plus probable, apparemment.

    En mélangeant les deux, toutes ces erreurs sont normales : tu mélanges du Qt 4 et du Qt 5, deux versions majeures. S'ils ont changé le numéro de version à 5, c'est pas pour rien : des choses ont changé, les sources ne sont plus parfaitement compatibles, il faut changer certaines lignes – très exactement le genre de choses que tu as remarquées.

    Prends les exemples dans le dossier de Qt 5, tout sera bien compatible.
    Bonjour.
    J'ai executer le fichier qt-linux-opensource-5.1.1-x86_64-offline.run.
    En suivant les examples qui sont accessibles depuis le menu principal de Qt Creator :
    Welcome/Examples
    J'ai cliqué sur la zone qui donne les explications sur "findfiles" -> Find Files Example
    Cela a charger le projet.
    J'ai cliqué dans le menu sur Build.
    Effectivement je ne sais pas ce que j'ai chargé ( du code Qt4 ou Qt5 ), mais théoriquement je n'ai pas à m'en soucier puisque cela fait parti du package téléchargé et installé et que de plus on ne me demande pas mon avis puisque le simple click charge le projet.
    Je n'ai pas de repertoire Qt4
    Et les fichiers des exemples se trouvent dans :
    /opt/Qt5.1.1/5.1.1/gcc_64/examples/widgets/dialogs/findfiles
    Donc il semblerait bien que les exemples ne sont pas à jour, non ?

    Citation Envoyé par jcdole Voir le message
    OUI entre autre.

    Le probleme c'est que dans QT Creator, je ne peut pas entrer dans le moduke design. Donc sans me poser de question j'ai utiliser QT Designer pour faire l'implementation graphique.

    Donc nouvelle question : comment fait on l'implementation graphique sous QT Creator.
    Je reviens à ma premiere question.
    Ce que j'ai remarqué, c'est que si j'ouvre un projet qui n'a pas de fichier ui, l'outil design n'est pas disponible.

    Donc il faut en premier lieu creer un projet en choisissant la premiere option Qt GUI Application (Comme je debute avec Qt on peut supposer que les autres options ne sont pas pertinente pour le moment).
    Puis on dessine l'interface avec l'outil Design.
    Cest ce que j'ai fini par faire.

    Est-ce bien cela qu'il faut faire ?

  10. #10
    Rédacteur/Modérateur
    Avatar de arnolddumas
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Autriche

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 978
    Points : 7 764
    Points
    7 764
    Par défaut
    Citation Envoyé par jcdole Voir le message
    Je reviens à ma premiere question.
    Ce que j'ai remarqué, c'est que si j'ouvre un projet qui n'a pas de fichier ui, l'outil design n'est pas disponible.
    Jusque là ça paraît logique.

    Citation Envoyé par jcdole Voir le message
    Donc il faut en premier lieu creer un projet en choisissant la premiere option Qt GUI Application (Comme je debute avec Qt on peut supposer que les autres options ne sont pas pertinente pour le moment).
    Puis on dessine l'interface avec l'outil Design.
    Cest ce que j'ai fini par faire.

    Est-ce bien cela qu'il faut faire ?
    Oui c'est une des façon de faire, la plus habituelle lorsqu'on débute.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation d'un fichier après création!
    Par NejNej dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/09/2008, 08h46
  2. IllegalStateException après la création d'un zip
    Par GreenJay dans le forum Struts 1
    Réponses: 3
    Dernier message: 19/07/2007, 15h16
  3. Réponses: 21
    Dernier message: 21/07/2006, 16h55
  4. Réponses: 17
    Dernier message: 03/05/2006, 15h31
  5. Réponses: 2
    Dernier message: 10/02/2006, 14h46

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