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

Discussion :

utilisation d'un .ui

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut utilisation d'un .ui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Ui::testaeffacerClass ui;
     
    ui.setupUi(this);
    Salut,

    Est ce que ces ligne sont là parce que le MainWindow a été crée dans Qt Designer ?
    Si oui, j'ai ajouté une toolbar dans un MainWindow crée dans Qt designer, mais lorsque je fais Ui:: , ma toolbar n'apparait pas, pkoi ?
    J'ai bien inclu le ui_MainWindow.h

  2. #2
    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
    Salut.
    Comment utilise tu ton .ui?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut
    En faite, j'ajoute des modules à un logiciel existant (Paraview) et donc mon MainWindow est dejà crée et charger dans une classe que je modifie.
    C'est pourquoi je n'ai jamais regardé comment ca été crée à la base. Et surtout puisque ca fais moins qu'un mois que je connais Qt.

  4. #4
    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
    Peut mettre un peu de code pour voir comment tu l'utilise ?

  5. #5
    Membre expérimenté Avatar de MacPro
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Par défaut
    Moi je dirais que y'a de très grandes chances que l'interface ait été crée sous Qt Designer.

    Qt designer génère un fichier ui qui se trouve être essentiellement de l'xml.
    Pour t'aiguiller, tu ouvres Qt Designer et fichier->nouveau Qwidget (ce sera plus simple).

    Ensuite, dans le property editor, tu changes le nom objectname, et tu donnes blabla par exemple.
    Puis, tu fais menu Form>view code, et là tu vas voir un aperçu du code que le compilateur ui te fait : pour plus de simplicité, voilà ce code :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include <QtCore/QVariant>
    #include <QtGui/QAction>
    #include <QtGui/QApplication>
    #include <QtGui/QButtonGroup>
    #include <QtGui/QWidget>
     
    QT_BEGIN_NAMESPACE
     
    class Ui_blabla
    {
    public:
     
        void setupUi(QWidget *blabla)
        {
        if (blabla->objectName().isEmpty())
            blabla->setObjectName(QString::fromUtf8("blabla"));
        blabla->resize(400, 300);
     
        retranslateUi(blabla);
     
        QMetaObject::connectSlotsByName(blabla);
        } // setupUi
     
        void retranslateUi(QWidget *blabla)
        {
        blabla->setWindowTitle(QApplication::translate("blabla", "Form", 0, QApplication::UnicodeUTF8));
        Q_UNUSED(blabla);
        } // retranslateUi
     
    };
     
    namespace Ui {
        class blabla: public Ui_blabla {};
    } // namespace Ui
     
    QT_END_NAMESPACE
     
    #endif // DESIGNERUH4320_H
    tu remarques qu'il te crées une classe Ui_blabla mais aussi un espace de nom Ui. A partir de là, tu utiliseras ou pas cet espace de nom (solution que je privilégie).

    Quand tu créeras une nouvelle classe pour utiliser celle crée par Qt Designer, tu auras deux méthodes pour le faire :

    _ Single inheritance approach
    _ Multiple inheritance approach

    Tu peux trouver plus d'informations sur ça dans la doc : Using a Component in Your Application

    ta toolbar, tu essaies d'y accéder depuis ta classe ou depuis l'extérieur de la classe ?
    Enfin, si tu n'as pas touché le code, y'a des chances pour que tu sois en mode Single inheritance approach et donc que ta toolbar soit parmi les membres privés si ta classe est dans ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class testaeffacer : public QMainWindow
    {
    	Q_OBJECT
     
    public:
    	testaeffacer(QWidget *parent = 0, Qt::WFlags flags = 0);
    	~testaeffacer();
     
    private:
    	Ui::testaeffacerClass ui;
    };

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut
    Merci Kestufou pour ton aide et pour les liens. je trouverai probablement ce que je veux dans ces liens.

    Voici à quoi ressemble la classe du main window principale du logiciel. vu que c'est une grosse classe, je n'ai mis que les infos nécessaire:
    MainWindow.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
     
    class MainWindow :
      public QMainWindow
    {
      Q_OBJECT
     
    public:
      MainWindow();
      ~MainWindow();
     
    signals:
    ...
     
    public slots:
    ...
     
    private slots:
    ...
    private:
      class pqImplementation;
      pqImplementation* const Implementation;
    MainWindow.cxx:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    class MainWindow::pqImplementation
    {
    public:
      pqImplementation(QWidget* parent) :
        AssistantClient(0),
        Core(parent),
        RecentFilesMenu(0),
        ViewMenu(0),
        ToolbarsMenu(0)
      {
      }
     
      ~pqImplementation()
      {
         ...
      }
     
     
      Ui::MainWindow UI;
      pqMainWindowCore Core;
      pqRecentFilesMenu* RecentFilesMenu;
      pqViewMenu* ViewMenu;
      pqViewMenu* ToolbarsMenu;
      QLineEdit* CurrentTimeWidget;
      QSpinBox* CurrentTimeIndexWidget;
      QPointer<pqServer> ActiveServer;
      QString DocumentationDir;
    };
     
    MainWindow::MainWindow() :
      Implementation(new pqImplementation(this))  
    {
      this->Implementation->UI.setupUi(this);
    ......
    ......
    }
    // d'autres fonctions

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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