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
> 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
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
> 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 #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.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 #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
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
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
Partager