Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. French
  4. Signals et Slots entre objets de classes différentes
Forum Updated to NodeBB v4.3 + New Features

Signals et Slots entre objets de classes différentes

Scheduled Pinned Locked Moved Unsolved French
4 Posts 2 Posters 673 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Morgatte
    wrote on last edited by
    #1

    Bonjour,

    Dans MainWindow j'ai créé un QLabel:

    MainWindow::MainWindow(QWidget *parent)             // arguments
        : QMainWindow(parent)                           // héritage
    {
    ...
        labelPositionNewNav = new QLabel("position",this);
        labelPositionNewNav->setGeometry(QRect(QPoint(2760,10), QSize(430, 50)));
    ....
    }
    

    J'ai par ailleurs un Widget nommé "newNav" dont la descendance est telle que :
    MainWindow > CustomLine > TimeLinePart3 > newNav

    newNav::newNav(QWidget *parent, int typed)
        : QLabel(parent)   // <----------- probleme ici ??
        //: QWidget(parent), QLabel(parent)
    {
        QPainter painter(this);                                                             
    ...
        setPixmap(QPixmap::fromImage(image)); // utilisé par le drag&drop
        
    }
    

    Je n'arrive pas à créer un système de Signal: et Slots: entre newNav et ma fenêtre MainWindow (mon QLabel) sans doute à cause du fait que newNav n'hérite pas de QObject ou QWidget.
    Je n'arrive pas non plus à lui imposer un héritage de type QWidget car sinon la fonction setPixmap n'est plus disponible.

    Comment atteindre mon QLabel à partir de mon newNav ?

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Bonjour,

      De quelle classe est newNav ?

      Ceci étant, si newNav est contenu dans TimeLinePart3 qui est lui-même dans CustomLine, la technique usuel est d'avoir une API dans le widget le plus haut (CustomLine dirait-on) qui transmettra plus bas. Car au final, il ne semble pas qu'il y ait de raisons que MainWindow ait besoin d'avoir connaissance d'un label qui se trouve derrière deux autres classes.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • M Offline
        M Offline
        Morgatte
        wrote on last edited by Morgatte
        #3

        Non :

        • mon QLabel appartient directement à MainWindow
        • mes objets newNav sont de classe newNav::

        Ce que je sais faire c'est récupérer la position d'un newNav dans son parent TimeLinePart3.
        Ce que j'aimerais c'est faire remonter cette valeur de position vers le haut, vers MainWindow pour pouvoir l'afficher dans le QLabel.

        Peut-être puis-je vous zipper mon code pour que vous puissiez vous rendre compte de la chaine imbriquée mise en jeu.

        Pour info.
        La création d'un newNav se fait avec : SHIFT + ClicDroit ou CTRL+ClicDroit
        Le basculement de type se fait par Clic Gauche

        link text

        Le code a été écrit sous Debian.
        Les liens vers les fichiers sont non relatif donc ça ne fonctonnera pas en l'état.

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #4

          Donc c'est à TimeLinePart3 de transmettre l'information plus haut à CustomLine qui pourra être connecté au label ou en fonction de l'information transmise le slot devrait être dans MainWindow pour mettre à jour le label.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved