我的 Qt 应用程序有问题。我正在尝试从另一个类中发出信号(它是放置信号的类的嵌套类)。
我已经用插槽连接了信号,应该没问题。但是当我尝试从这个嵌套类中发出这个信号时,我得到了编译器错误:
没有对象不能调用成员函数
怎么了?我在 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
我使用以下函数调用将客户端代码中的 LogWriter实例的信号连接到某个插槽:
connect(&LOW, SIGNAL(signalLogAppend(QString)),
this, SLOT(appendText(QString&)),
Qt::DirectConnection);