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 :

QGridLayout : je n'arrive pas à disposer mes "plots"

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut QGridLayout : je n'arrive pas à disposer mes "plots"
    Bonjour tous,
    je suis un peu en galère avec le gridLayout, j'espere que vous pourrez m'aider...
    Par l'intermédiaire d'une librairie Qwt j'ai inséré (en plus de 4boutons que j'ai déjà mis en place) 6fenetres qui contiennent des "plot", malheureusement je n'arrive pas à disposer comme je souhaite ces fenetres afin qu'elles soient correctement espacées et surtout qu'elles prennent tout l'espace de ma fenetre.

    Voici ma fenetre actuelle:
    http://imageshack.us/photo/my-images/851/myplots.jpg/

    pourriez vous me dire comment modifier mon code afin d'obtenir ce que je souhaite? j'ai essayé de modifier les données des gridLayout mais ca ne change rien...

    quand je dis les options voici ce que je veux dire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyGridLayout->addWidget(fenetre.get_WindowNumber1(),0,0,3,3);
    remplacé par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyGridLayout->addWidget(fenetre.get_WindowNumber1(),0,0,5,5);
    voici mon code:
    Main.cpp
    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
     
    #include <QApplication>
    #include "MyMainWindow.h"
    #include <QGridLayout> 
    int main(int argc, char *argv[]) 
    {
        QApplication app(argc, argv); 
        MyMainWindow fenetre; 
        fenetre.setWindowFlags(Qt::Window); 
     
        QGridLayout *MyGridLayout = new QGridLayout;
        MyGridLayout->addWidget(fenetre.get_WindowNumber1(),0,0,3,3);
        MyGridLayout->addWidget(fenetre.get_WindowNumber2(),0,3,3,3);
        MyGridLayout->addWidget(fenetre.get_WindowNumber3(),0,6,3,3);
        MyGridLayout->addWidget(fenetre.get_WindowNumber4(),3,0,3,3);
        MyGridLayout->addWidget(fenetre.get_WindowNumber5(),3,3,3,3);
        MyGridLayout->addWidget(fenetre.get_WindowNumber6(),3,6,3,3);
        MyGridLayout->addWidget(fenetre.get_BUTTONRun(),0,8);
        MyGridLayout->addWidget(fenetre.get_BUTTONQuit(),0,9);
        MyGridLayout->addWidget(fenetre.get_BUTTONAbout(),1,8);
        MyGridLayout->addWidget(fenetre.get_BUTTONContact(),1,9);
        fenetre.setLayout(MyGridLayout);
        fenetre.show(); 
        return app.exec(); 
    }
    MyMainWindow.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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    #ifndef MYMAINWINDOW_H
    #define MYMAINWINDOW_H
     
    #include <QApplication>
    #include <QWidget>
    #include <QPushButton>
    #include <QMessageBox>
    #include <qwt_plot.h>
     
    class MyMainWindow : public QWidget 
    {                                   
        Q_OBJECT 
     
        public:
        MyMainWindow(); 
        ~MyMainWindow(); 
        QPushButton* get_BUTTONRun();
        QPushButton* get_BUTTONQuit();
        QPushButton* get_BUTTONAbout();
        QPushButton* get_BUTTONContact();
        QWidget* get_WindowNumber1();
        QWidget* get_WindowNumber2();
        QWidget* get_WindowNumber3();
        QWidget* get_WindowNumber4();
        QWidget* get_WindowNumber5();
        QWidget* get_WindowNumber6();
     
        private:
        QPushButton *BUTTONRun; 
        QPushButton *BUTTONQuit;
        QPushButton *BUTTONAbout;
        QPushButton *BUTTONContact;
        QWidget *WindowNumber1;
        QWidget *WindowNumber2;
        QWidget *WindowNumber3;
        QWidget *WindowNumber4;
        QWidget *WindowNumber5;
        QWidget *WindowNumber6;
        QwtPlot *myPlot1;
        QwtPlot *myPlot2;
        QwtPlot *myPlot3;
        QwtPlot *myPlot4;
        QwtPlot *myPlot5;
        QwtPlot *myPlot6;
    };
    #endif // MYMAINWINDOW_H
    MyMainWindow.cpp
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    #include "MyMainWindow.h"
     
    MyMainWindow::MyMainWindow() : QWidget()
    {
        WindowNumber1= new QWidget(this);
        WindowNumber2= new QWidget(this);
        WindowNumber3= new QWidget(this);
        WindowNumber4= new QWidget(this);
        WindowNumber5= new QWidget(this);
        WindowNumber6= new QWidget(this);
        myPlot1=new QwtPlot(WindowNumber1);
        myPlot2=new QwtPlot(WindowNumber2);
        myPlot3=new QwtPlot(WindowNumber3);
        myPlot4=new QwtPlot(WindowNumber4);
        myPlot5=new QwtPlot(WindowNumber5);
        myPlot6=new QwtPlot(WindowNumber6);
     
    	BUTTONRun = new QPushButton("RUN", this);
        BUTTONQuit = new QPushButton("STOP", this);
        BUTTONAbout = new QPushButton("About", this);
        BUTTONContact = new QPushButton("Contact", this);
     
        QObject::connect(BUTTONQuit, SIGNAL(clicked()), qApp, SLOT(quit())); 
        QObject::connect(BUTTONAbout, SIGNAL(clicked()), qApp, SLOT(aboutQt()));
     
    }
    MyMainWindow::~MyMainWindow() 
    {
     
    }
     
    QPushButton* MyMainWindow::get_BUTTONRun()
    {
        return BUTTONRun;
    }
     
    QPushButton* MyMainWindow::get_BUTTONQuit()
    {
        return BUTTONQuit;
    }
     
    QPushButton* MyMainWindow::get_BUTTONAbout()
    {
        return BUTTONAbout;
    }
     
    QPushButton* MyMainWindow::get_BUTTONContact()
    {
        return BUTTONContact;
    }
     
    QWidget* MyMainWindow::get_WindowNumber1()
    {
        return WindowNumber1;
    }
     
    QWidget* MyMainWindow::get_WindowNumber2()
    {
        return WindowNumber2;
    }
     
    QWidget* MyMainWindow::get_WindowNumber3()
    {
        return WindowNumber3;
    }
     
    QWidget* MyMainWindow::get_WindowNumber4()
    {
        return WindowNumber4;
    }
     
    QWidget* MyMainWindow::get_WindowNumber5()
    {
        return WindowNumber5;
    }
     
    QWidget* MyMainWindow::get_WindowNumber6()
    {
        return WindowNumber6;
    }

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Pourquoi tu ne fais pas tout ça avec Designer ?

    Je trouve plus facile de se débrouiller avec des HorizontalLayout et VerticalLayout (j'ai vu ça dans un autre topic en plus). Là il faudrait au moins 2 Grid (un pour les plots et un pour les boutons) dans 1 Horizontal je dirais...

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    Citation Envoyé par Troudhyl Voir le message
    Pourquoi tu ne fais pas tout ça avec Designer ?
    je ne sais pas vraiment l'utiliser et j'ai plus envie de le faire moi même pour "maitriser" un peu le truc.

    Citation Envoyé par Troudhyl Voir le message
    Je trouve plus facile de se débrouiller avec des HorizontalLayout et VerticalLayout (j'ai vu ça dans un autre topic en plus). Là il faudrait au moins 2 Grid (un pour les plots et un pour les boutons) dans 1 Horizontal je dirais...
    oui mais j'ai rencontré des problèmes avec les layout horizontaux et verticaux
    regarde l'image ci jointe
    http://imageshack.us/photo/my-images/829/myplots.jpg/

    avec 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
     
    // Row 0, Column 0, 1, 2. All these are 3-Rows in height, and 1-Column is Width
        MyGridLayout->addWidget(fenetre.get_WindowNumber1(),0,0,3,1);
        MyGridLayout->addWidget(fenetre.get_WindowNumber2(),0,1,3,1);
        MyGridLayout->addWidget(fenetre.get_WindowNumber3(),0,2,3,1);
     
        // Row 3, Column 0, 1, 2. All these are 3-Rows in height, and 1-Column is Width
        MyGridLayout->addWidget(fenetre.get_WindowNumber4(),3,0,3,1);
        MyGridLayout->addWidget(fenetre.get_WindowNumber5(),3,1,3,1);
        MyGridLayout->addWidget(fenetre.get_WindowNumber6(),3,2,3,1);
     
        //Buttons
        // Row 0, 1, 2, 3, Column 3. All these are 1-Row in height, and 1-Column is Width
        MyGridLayout->addWidget(fenetre.get_BUTTONRun()    ,0,3,1,1);
        MyGridLayout->addWidget(fenetre.get_BUTTONQuit()   ,1,3,1,1);
        MyGridLayout->addWidget(fenetre.get_BUTTONAbout()  ,2,3,1,1);
        MyGridLayout->addWidget(fenetre.get_BUTTONContact(),3,3,1,1);
    Citation Envoyé par Troudhyl Voir le message
    Pourquoi tu ne fais pas tout ça avec Designer ?
    je viens de tester mais comment faire pour ajouter les "plots" de Qwt avec QtDesigner puisque les widget de qwt ne semblent pas être dans la liste...?
    comment associer ensuite avec Qt designer des equation aux plot ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    j'ai essayé d'agrandir la taille de mes "plot" avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    myPlot1=new QwtPlot(this);
        myPlot1->minimumSize(2000);
    mais ca ne fonctionne pas....

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Citation Envoyé par 21did21 Voir le message
    je viens de tester mais comment faire pour ajouter les "plots" de Qwt avec QtDesigner puisque les widget de qwt ne semblent pas être dans la liste...?
    Et bien il faut les mettre. Quand t'installes Qwt, il te génère le plugin designer (sauf si tu l'as enlevé). Soit tu copies qwt.dll dans %QTDIR%/bin et qwt_designer_plugin.dll dans %QTDIR%/plugins/designer, soit tu fais avec la bonne méthode "expliquée" dans INSTALL, avec les variables d'environnement (QT_PLUGIN_PATH et PATH). Marche avec Designer, et Qt Creator s'il a été compilé avec le même compilateur que Qwt.



    Citation Envoyé par 21did21 Voir le message
    comment associer ensuite avec Qt designer des equation aux plot ?
    Le designer ne sert qu'à faire le design (manipuler les layouts dans le code me semble être une perte de temps, c'est bon tu as compris qu'il faut faire des addWidget etc.), après tu as les noms des objets dans l'arborescence à droite et tu peux les utiliser dans le code.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    j'ai testé mais je n'arrive pas à avoir accès à qwt avec le designer...

    j'ai regardé dans l'install mais soit je comprends rien soit il y a pas vraiment d'explications.

    J'ai mis le "qwt_plugin" dans tous les dossier nommés "designer" mais ca ne fonctionne toujours pas...

    je n'ai pas compris ce que je dois faire avec les varibales d'environnements, je ne sais pas ce que c'est ce que tu appels les variables d'environnement...

    c'est dans .pro que je dois rajouter des choses ???

  7. #7
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut

    On a réglé ensemble avec Uwe tous les problèmes d'installation de Qwt, ça n'a plus aucun mystère pour nous et je suis même en train de rédiger la QR pour la FAQ tellement on est devenu balèzes sur ce sujet. Soit tu te moques de moi, soit t'es amnésique, regarde, ma capture prouve que tout fonctionne suite à nos investigations sur tes topics d'ici et de qtcentre...

    Variables d'environnement => base d'une utilisation pro d'un ordinateur, je vais pas te faire un cours d'informatique alors je te laisse Googler Aller un petit lien : http://windows.developpez.com/faq/wi...-environnement (mais ça n'explique pas ce que c'est).

    Le .pro c'est le fichier de configuration de ton projet, aucun rapport avec Designer qui affiche tout le temps tous les plugins dispos.

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 28/08/2007, 11h56
  2. Réponses: 19
    Dernier message: 20/05/2007, 23h12
  3. Réponses: 2
    Dernier message: 26/02/2007, 15h06

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