Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bug Mdi Qtcreator

    25 janvier 2019 à 9:47:53

    Tout d'abord bonjour, alors voila dans le cadre d'un projet de 2eme année de BTS je dois créer une application sous Qt en soit rien de très compliqué mais dans le cahier des charges l'on m'impose un MDI ,nouveau pour moi. Jusqu'ici tout va bien ,mes SubWindow s'affichent bien et pas de soucis en soit quand il y a plusieurs SubWindow en même temps.

    Le problème étant que quand j'ouvre un seul Widget et que je souhaite le déplacer sur mon MDI principale (imposé par le cahier des charges ,obligation de pouvoir bouger les widget sur l'écran),la SubWindow est complètement bugger. Soucis que je le rappel ne survient pas quand plusieurs widget sont ouvert ou que 2 sont ouvert puis 1 fermé ,le seul restant ce déplace très bien sans problème d'affichage .

    Pouvez vous m'aidez ? =) 

    • Partager sur Facebook
    • Partager sur Twitter
      25 janvier 2019 à 10:26:33

      Salut,

      Serait-il possible d'avoir un bout de code pour pouvoir t'aider ? :D

      • Partager sur Facebook
      • Partager sur Twitter
        25 janvier 2019 à 10:51:27

        //mainwindow.cpp
        
        #include "mainwindow.h"
        #include "ui_mainwindow.h"
        #include <QMessageBox>
        #include <QMdiArea>
        #include <QMdiSubWindow>
        #include "childwindowlum.h"
        
        MainWindow::MainWindow(QWidget *parent) :
            QMainWindow(parent),
            ui(new Ui::MainWindow)
        {
            ui->setupUi(this);
        }
        
        MainWindow::~MainWindow()
        {
            delete ui;
        }
        
        void MainWindow::on_actionLumiere_triggered()
        {
            ChildWindowLum *childWindowlum = new ChildWindowLum(ui->mdiArea);
                childWindowlum->setAttribute(Qt::WA_DeleteOnClose);
                childWindowlum->show();
        }
        
        
        //main.cpp
        
        #include "mainwindow.h"
        #include <QApplication>
        #include "lumiere.h"
        #include <QMessageBox>
        #include <QMdiArea>
        #include <QMdiSubWindow>
        int main(int argc, char *argv[])
        {
            QApplication a(argc, argv);
            MainWindow w;
            w.showMaximized();
        
            return a.exec();
        }
        
        //lumiere.cpp
        
        #include "lumiere.h"
        #include "ui_childlumiere.h"
        
        childLumiere::childLumiere(QWidget *parent) :
            QWidget(parent),
            ui(new Ui::childLumiere)
        {
            ui->setupUi(this);
        }
        
        childLumiere::~childLumiere()
        {
            delete ui;
        }
        
        //childwindowlum.cpp
        
        #include "childwindowlum.h"
        #include <QMdiSubWindow>
        #include "lumiere.h"
        
        ChildWindowLum::ChildWindowLum(QWidget *parent) :
          QMdiSubWindow(parent)
        {
            lumiere = new childLumiere(this);
            this->setWidget(lumiere);
        }
        
        ChildWindowLum::~ChildWindowLum()
        {
            lumiere->~childLumiere();
        }
        
        //lumiere.h
        
        #ifndef CHILDLUMIERE_H
        #define CHILDLUMIERE_H
        
        #include <QWidget>
        
        namespace Ui {
        class childLumiere;
        }
        
        class childLumiere : public QWidget
        {
            Q_OBJECT
        
        public:
            explicit childLumiere(QWidget *parent = nullptr);
            ~childLumiere();
        
        private:
            Ui::childLumiere *ui;
        };
        
        #endif // CHILDLUMIERE_H
        
        //childwindowlum.h
        
        #ifndef CHILDWINDOWLUM_H
        #define CHILDWINDOWLUM_H
        #include <QtGui>
        #include <QWidget>
        #include <QMdiSubWindow>
        
        #include "lumiere.h"
        
        namespace Ui {
            class ChildWindowLum;
        }
        
        class ChildWindowLum : public QMdiSubWindow
        {
            Q_OBJECT
        
        public:
            explicit ChildWindowLum(QWidget *parent = 0);
                ~ChildWindowLum();
        private:
            childLumiere *lumiere;
        };
        
        #endif // CHILDWINDOWLUM_H
        

        Voila ,j'espère que c'est assez claire ,en prenant en compte que l'apparition et l'utilisation de mes fenêtres widget fonctionne juste un bug de déplacement du widget quand il est seul au début et qu'on ne lui rajoute pas une autre fenêtre widget même fermé par la suite .







        -
        Edité par BruceLicorne 25 janvier 2019 à 10:54:01

        • Partager sur Facebook
        • Partager sur Twitter

        Bug Mdi Qtcreator

        × 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