Bonjour,
J'ai une classe A principale qui appel une méthode de la classe B, cette méthode de la classe B est un slot,
mais dans dans cette methode sLOT, je voudrais appeler une methode de la classe A.
Methode de la classe A que je doit appelé: la classe A s'appele Dialog c'est l'application principale.
quand je l'appelle a partir de la classe Dialog elle fontionne parfaitement.
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 bool Dialog::isMenuChecked(const QString &actionName) { bool checked; QAction *action = findChild<QAction *>(actionName); checked = false; if(action) { if(actionName == action->objectName()) checked = action->isChecked(); qDebug() << tr("actionname: %1 objectname: %2").arg(actionName).arg(action->isChecked()); } return checked; }
Methode slot de la classe B(MyServer) qui doit appele isMenuCheck qui se trouve dans la classe A(Dialog).
La methode est bien appelé mais la variable QAction action de la methode isMenuCheck est a null, alors que ca fonctionne lorsqu'elle est appelée directement à partir de la classe Dialog.
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 void MyServer::handleSlotResponse(const QString text, QColor color) { if(qte_resp) { Dialog *d = qobject_cast<Dialog *>(pParent); if(d->isMenuChecked("hideresp") == false) { qDebug() << "ok"; qte_resp->setTextColor(color); qte_resp->append(text); } } }
QAction *action = findChild<QAction *>(actionName);
j'ai essaye via la declaration statique de isMenuCheck mais ca ne marche pas car j'utilise l'objet QAction dans cette methode.
Avez vous une idée ?
Merci de votre aide.
Partager