我的Qt應用程序出現問題。我試圖從另一個類中發出一個信號(它是信號放置的嵌套類)。如何從另一個班發出信號?
我已經連接了一個插槽的信號,這應該很好。但是當我試圖從這個嵌套類內發出這個信號時,我得到編譯器錯誤:
cannot call member function without object
出什麼問題?我在Qt文檔中查找過這些文件,但找不到合理的解決方案或解釋。
簡化的類定義如下所示。
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);
};
我連一個實例使用下面的函數調用的客戶端代碼的一些槽日誌寫的LOW
的信號:
connect(&LOW, SIGNAL(signalLogAppend(QString)),
this, SLOT(appendText(QString&)),
Qt::DirectConnection);
「LOW」是否是正確的對象類型? – tmpearce 2013-03-02 16:07:25
LOW是什麼?有一些代碼缺失給你一個適當的分析。 – 2013-03-02 16:09:45
LOW表示Log類 - 我在後面提到的內部類 – lagoru 2013-03-02 16:17:52