Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt] problème affichage

QVBoxLayout

Sujet résolu
    29 juin 2007 à 14:23:51

    Bonjour je suis en train de faire un programme avec Qt mais j'ai un problème. En faite, tout mes éléments se supperpose.
    Voilà mon code :

    main.cpp

    #include "MainWindow.h"

    int main(int argc, char **argv)
    {
        QApplication    app(argc, argv);
        MainWindow window ;
        window.show();
        return app.exec();
    }
     


    MainWindow.h
    #ifndef MAIN_WINDOW_H
        #define MAIN_WINDOW_H

        #include <QtGui>
        #include <QtCore>

        class MainWindow : public QMainWindow
        {
            Q_OBJECT

            public :
                MainWindow(QWidget *parent = 0);

            private slots :
                void showTime();


            private :
                QLCDNumber  *heure ;
                QLabel      *date  ;
                QVBoxLayout *layout;
                QTimer      *timer ;

        };

    #endif
     


    MainWindow.cpp


    #include "MainWindow.h"

    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
    {

        date = new QLabel("Bonjour",this);
        heure = new QLCDNumber(this);
        timer = new QTimer(this);

        connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));
        timer->start(1000);

        layout = new QVBoxLayout();
        layout->addWidget(date);
        layout->addWidget(heure);

        setLayout(layout);
    }

    void MainWindow::showTime()
    {

    }
     


    D'ou viens le problème ? merci de votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      29 juin 2007 à 14:37:17

      tout simplement c'est qu'on peux pas faire "setLayout" sur un QMainWindow (car il y juste un widget central).
      voila le code (du constructeur) à faire :
          QWidget *w = new QWidget(this); // créer un widget
          date = new QLabel("Bonjour",this);
          heure = new QLCDNumber(this);
          timer = new QTimer(this);

          connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));
          timer->start(1000);

          layout = new QVBoxLayout();
          layout->addWidget(date);
          layout->addWidget(heure);

          w->setLayout(layout); // lui mettre le layout
          setCentralWidget(w); // le mettre en widget central
       
      • Partager sur Facebook
      • Partager sur Twitter
        29 juin 2007 à 15:06:31

        D'accord, je ne savais pas. Maintenant ca marche parfaitement.

        merci
        • Partager sur Facebook
        • Partager sur Twitter

        [Qt] problème affichage

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown