1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2016
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Récupérer une QString envoyée par un slot

    Bonjour,

    Dans mon code, j'ai un slot qui reçoit en paramètre un objet QString, je voudrais assigner sa valeur à une autre variable ou l'utiliser DIRECTEMENT dans une autre fonction de la même classe.

    Dans mon code, le signal est émis par une autre classe.

    Merci de m'aider !



    > MyWidget.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
        #ifndef MYWIDGET_H
        #define MYWIDGET_H
        #include"myclass.h"
        #include <QWidget>
        #include <QtWidgets>
        namespace Ui {
        class MyWidget;
        }
     
        class MyWidget : public QWidget
        {
            Q_OBJECT
     
        public:
            explicit MyWidget(QWidget *parent = 0);
            ~MyWidget();
        private:
            Ui::MyWidget *ui;
        signals:
           void redirectData(QString data);
        public slots:
           void sendData();
        private:
           MyClass *myClass; // the object to receive and output the data
        };
     
        #endif // MYWIDGET_H
    > MyWidget.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        #include "mywidget.h"
        #include "ui_mywidget.h"
        MyWidget::MyWidget(QWidget *parent) :
            QWidget(parent),
            ui(new Ui::MyWidget)
        {
            ui->setupUi(this);
            myClass = new MyClass();
     
            connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(sendData()));
            connect(this, SIGNAL(redirectData(QString)), myClass, SLOT(outputData(QString)));
        }
     
        MyWidget::~MyWidget()
        {
            delete ui;
        }
        void MyWidget::sendData()
        {
     
            emit redirectData(ui->lineEdit->text());
            myClass->show();
     
        }
    > MyClass.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        #ifndef MYCLASS_H
        #define MYCLASS_H
        #include <QWidget>
     
        namespace Ui {
        class MyClass;
        }
     
        class MyClass : public QWidget
        {
            Q_OBJECT
     
        public:
            explicit MyClass(QWidget *parent = 0);
            ~MyClass();
            QString x;
        private:
            Ui::MyClass *ui;
        signals:
            void send2(QString);
        public slots:
            void outputData(QString data);
        };
        #endif // MYCLASS_H
    > MyClass.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
        #include "myclass.h"
        #include "ui_myclass.h"
     
        MyClass::MyClass(QWidget *parent) :
            QWidget(parent),
            ui(new Ui::MyClass)
        {
            ui->setupUi(this);
            ui->plainTextEdit->insertPlainText(x); // show x in plainTextEdit
        }
     
        MyClass::~MyClass()
        {
            delete ui;
        }
        void MyClass::outputData(QString data){
     
           x=data; // affect data a x 
        }
     
    >  here is a catch
    Nom : Capture1.PNG
Affichages : 48
Taille : 8,5 Ko

    Je veux afficher x dans QPlainText.

    Cette méthode est correcte, mais elle ne va pas avec le reste de mon code.

    Je veux récupérer les données dans x.

    > MyClass.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
        #include "myclass.h"
        #include "ui_myclass.h"
     
        MyClass::MyClass(QWidget *parent) :
            QWidget(parent),
            ui(new Ui::MyClass)
        {
            ui->setupUi(this);
     
        }
     
        MyClass::~MyClass()
        {
            delete ui;
        }
        void MyClass::outputData(QString data){
     
            ui->plainTextEdit->insertPlainText(data); 
        }

    > here is a catch



    [1]: https://i.stack.imgur.com/tNp8A.png
    [2]: https://i.stack.imgur.com/Jj7J5.png

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    avril 2007
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : avril 2007
    Messages : 183
    Points : 126
    Points
    126

    Par défaut

    Bonjour,

    Je crois que l'on pose une question sur le même sujet. (Faire communiquer deux fenêtres ensemble.)
    Il y un truc que je ne comprends pas dans ton message. Ton implémentation fonctionne ? c'est quoi ton problème exactement ?

    ++
    Dereck

Discussions similaires

  1. Transmission d'objets via signaux et slots
    Par SmallFitz dans le forum Multithreading
    Réponses: 1
    Dernier message: 04/04/2013, 21h41
  2. Passer un tableau via un signal/slot
    Par Zhitoune dans le forum Débuter
    Réponses: 1
    Dernier message: 12/01/2010, 09h11
  3. [Kylix] PostgreSql via ODBC
    Par doykati dans le forum EDI
    Réponses: 3
    Dernier message: 08/02/2007, 10h10
  4. [TP7] Calculer sin, cos, tan, sqrt via le FPU
    Par zdra dans le forum Assembleur
    Réponses: 8
    Dernier message: 25/11/2002, 04h09
  5. Réponses: 4
    Dernier message: 05/06/2002, 12h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo