Partage
  • Partager sur Facebook
  • Partager sur Twitter

Heritage Multiple

Sujet résolu
    26 mars 2019 à 20:46:07

    Bonsoir,

    Ma question est la suivante :

    Est il possible de faire heriter une classe créer avec QT Design par un autre classe de QT Design ? 

    Dans mon cas, j'ai faire une interface graphique en .ui et j'ai simplement besoin d'avoir la meme mais en avec certain pixmap en miroir.. ( une version de la fenetre en droite et une autre en gauche, j'ai developpé la gauche en entier pour le moment, et je voudrais donc faire heriter la droite de la fenetre gauche.)

    Donc plutot que tout refaire, j'essai de trouver la syntaxe pour realiser cela.

    Pour rappel, mes classes .ui herite deja de QDIalog comme ceci : 

    #ifndef WINDOW018704_H
    #define WINDOW018704_H
    
    #include <QDialog>
    
    namespace Ui {
    class Window018704;
    }
    
    class Window018704 : public QDialog 
    {
        Q_OBJECT
    
        public:
            explicit Window018704(QWidget *parent = nullptr);
            ~Window018704();
    
        private:
            Ui::Window018704 *ui;
    };
    
    #endif // WINDOW018704_H
    

    Merci pour votre aide

    edit[]

    Un peu d'aide ?? 

    -
    Edité par Mars8 27 mars 2019 à 14:13:17

    • Partager sur Facebook
    • Partager sur Twitter
      29 mars 2019 à 6:27:54

      Un truc du genre:

      #include<QLabel>
      #include<QLayout>
      #include<QSplitter>
      
      // mypanel.h
      class MyPanel : public QWidget
      {
          Q_OBJECT
      	
      public:
      
          MyPanel(QString const & text,QPixmap image,bool left,QWidget * owner = nullptr);
          virtual ~MyPanel() = default;
      	
      private:
      
          QLabel * text_;
          QLabel * image_;
      };
      
      // mypanel.cpp
      MyPanel::MyPanel(QString const & text,QPixmap image,bool left,QWidget * owner)
        :QWidget{owner}
        ,text_{new QLabel{text,this}}
        ,image_{new QLabel{this}}
      {
      	image_->setPixmap(image);
      	auto main = new QHBoxLayout{};
      	if (left){
      		main->addWidget(image_);
      		main->addWidget(text_);
      	}else{
      		main->addWidget(text_);
      		main->addWidget(image_);
      	}
      	setLayout(main);
      }
      
      // mydisplay.h
      struct Info
      {
           QString text_{};
           QPixmap image_{};
      };
      
      class MyDisplay : public QSplitter
      {
          Q_OBJECT
      	
      public:
      
          MyDisplay(Info const & left,Info const & right,QWidget * owner = nullptr);
          virtual ~MyDisplay() = default;
      	
      private:
      
         MyPanel * left_;
         MyPanel * right_;
      	
      };
      
      // mydisplay.cpp
      MyDisplay::MyDisplay(Info const & left,Info const & right,QWidget * owner)
      	:QSplitter{Qt::Horizontal,owner}
      	,left_{new MyPanel{left.text_,left.image_,true,this}}
      	,right_{new MyPanel{right.text_,right.image_,false,this}}
      {
      	addWidget(left_);
      	addWidget(right_);
      }
      



      • Partager sur Facebook
      • Partager sur Twitter
      Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
        29 mars 2019 à 15:08:01

        tu a simplement fait un changement en droite gauche .. tu fais pas d'heritage .. 

        J'ai simplifier ma question mais jai genre 10 image a modifier ... en j'aurais aimé le faire en graphique car comme tu a fait ca alourdie pas mal le code juste pour 1 image donc j'imagine pas avec 10 ... 

        • Partager sur Facebook
        • Partager sur Twitter
          30 mars 2019 à 10:37:57

          Les listes et les tableaux, c'est pas fait pour les chiens...

          Je n'ai pas fait d'héritage, car c'est inutile d'en faire ici...

          Sortir l'héritage pour juste changer la position d'un widget, c'est juste crétin, j'ai suffisamment d'expérience pour savoir quand une dérivation est intéressante et quand elle ne l'est pas, bidouiller la position de widget sur une fenêtre est clairement un cas où l'héritage n'a aucun intérêt.

          -
          Edité par int21h 31 mars 2019 à 14:30:29

          • Partager sur Facebook
          • Partager sur Twitter
          Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug

          Heritage Multiple

          × 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