Comment puis-je émettre un signal à partir d'une autre classe?

J'ai un problème avec mon application Qt. Je suis en train d'émettre un signal à partir d'une autre classe (c'est une classe imbriquée l'une dans laquelle le signal est placé).

J'ai déjà connecté le signal avec une fente, ce qui devrait être suffisant. Mais quand j'essaie d'émettre ce signal à l'intérieur de cette classe imbriquée j'obtiens l'erreur de compilateur:

ne peut pas appeler la fonction membre sans objet

Quel est le problème? J'ai regardé pour que, dans la documentation de Qt, mais ne pouvait pas trouver de solution raisonnable ou même explication.

De la simplification de la définition de la classe se présente comme suit.

class LogWriter : public QDialog
{   
   Q_OBJECT

public:
   class Log : public QObject
   {
      Q_OBJECT

   public:
      bool print;

      Log(bool _print, QString _color, QObject *obj = NULL)
         : QObject(obj)
      {
         print = _print;
         color = _color;
      }
   };

   LogWriter(QWidget * parent = 0);
   ~LogWriter();

public slots:
   void setMinVal();
   void setMediumVal();
   void setHighVal();
   void cleanWindow();
   void appendText(QString &text);

signals:
   void signalLogAppend(QString);
};

- Je connecter le signal d'une instance LOW de l'écriture de journal dans le code du client pour certains fente à l'aide de l'appel de fonction suivant:

connect(&LOW, SIGNAL(signalLogAppend(QString)),
        this, SLOT(appendText(QString&)),
        Qt::DirectConnection);
  • Est LOW le bon type d'objet?
  • Ce qui est FAIBLE? Il y a un peu de code manquant pour vous donner une analyse adéquate.
  • FAIBLE représente Journal de classe - une classe interne je l'ai mentionné dans le post
  • Vous ne savez pas si moc joue de nice avec imbriqué définition de la classe.
InformationsquelleAutor lagoru | 2013-03-02