Ho un problema con la mia applicazione Qt. Sto cercando di emettere un segnale da un'altra classe (è una classe nidificata di quella in cui è posizionato il segnale).Come posso emettere un segnale da un'altra classe?
Ho già collegato il segnale con uno slot, che dovrebbe andare bene. Ma quando provo ad emettere questo segnale all'interno di questa classe annidata ottengo l'errore del compilatore:
cannot call member function without object
Cosa c'è di sbagliato? Ho cercato quello nella documentazione di Qt ma non ho potuto trovare la soluzione ragionevole o persino la spiegazione.
La definizione di classe semplificata è la seguente.
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);
};
I Collegare il segnale di un'istanza LOW
del logwriter nel codice client in qualche fessura utilizzando la funzione la seguente chiamata:
connect(&LOW, SIGNAL(signalLogAppend(QString)),
this, SLOT(appendText(QString&)),
Qt::DirectConnection);
'LOW' è il tipo giusto di oggetto? – tmpearce
Che cos'è BASSO? C'è del codice mancante per darti una corretta analisi. –
LOW rappresenta la classe Log - la classe interna I menzionata nel post – lagoru