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 : 30
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