Partage
  • Partager sur Facebook
  • Partager sur Twitter

Slot avec Qt

    14 novembre 2018 à 16:43:13

    Bonjour Je m'entraine dans la partie de Qt qui traite des signals et slot

    Dans le code suivant qui fait parti du cours j'ai un bouton qui ouvre une image et le chemin de l'image est recupéré avec QFileDialog que j'ai rajouté

    Mais ce que je 'arrive pas à faire c'est à déclencher QFileDialog seulement lorsque l'on clique sur le bouton 

    Comment faut il s'y prendre svp  ??

    j'ai essayé image->setPixmap(QPixmap(QFileDialog::getOpenFileName())); mais ça s'ouvre quand même avant d'avoir cliqué

        QString filepath = QFileDialog::getOpenFileName();
    
        QDialog fenetreImage;                        // creation de la fenetre image
        QLabel *image = new QLabel(&fenetreImage);   // mettre un parent pour le label et pouvoir utiliser connect
        image->setPixmap(QPixmap(filepath));
    
        QVBoxLayout *layoutImage = new QVBoxLayout;  //Layout pour l'image
        layoutImage->addWidget(image);
        fenetreImage.setLayout(layoutImage);
    
        QWidget::connect(bouton, SIGNAL(clicked()), &fenetreImage, SLOT(exec()));



    • Partager sur Facebook
    • Partager sur Twitter
      14 novembre 2018 à 17:47:36

      Salut,

      Ton QDialog fenetreImage; est une variable locale qui est détruit dès que tu sors de ce scope, et la connexion avec.

      Crée-toi un slot et déplace ce code dedans, puis connecte-le à la place d'exec().

      • Partager sur Facebook
      • Partager sur Twitter
        15 novembre 2018 à 8:39:56

        Salut,

        La fenêtre QFileDialog s'ouvre à l'appel de QFileDialog::getOpenFileName()

        Donc si tu veux l'ouvrir lorsqu'on clique sur un bouton, il faut l'appeler sur le signal du bouton, donc au travers un connect

        Utilises la syntaxe Qt5 du connect

        • Partager sur Facebook
        • Partager sur Twitter
        Dream on, Dream on, Dream until your dream comes true

        Slot avec Qt

        × 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