我有一个简单的对象库,用于存储有关变量的附加数据。当我创建每个对象(用作变量)时,我想维护这些对象的 QList。有没有办法自动将所有新创建的对象的信号连接到一个插槽。该插槽属于我的应用程序中的一个对象。
对象头 ezbool.h
class EZBool : public QObject
{
Q_OBJECT
public:
explicit EZBool(QObject *parent = 0);
EZBool(QString boolName, bool initialValue, IOTYPE type);
//Removed Member Functions
signals:
void localEZBool_Created(EZBool *me);
private:
QString name;
bool value;
IOTYPE ioType;
};
对象构造 器ezbool.cpp
EZBool::EZBool(QString boolName, bool initialValue, IOTYPE type)
{
name = boolName;
value = initialValue;
ioType = type;
emit localEZBool_Created(this);
}
插槽实现 fbtest.cpp
void TestFB::on_localEZBool_Created(EZBool *newVar)
{
qDebug() << "Auto Connect worked??";
//Handle new variable by adding to QList
}
在fbtest.cpp中以下列方式创建对象:
void TestFB::initialize()
{
mpOnCmd = new EZBool("MpOnCmd", false, IO_INPUT);
zeroSpeed = new EZBool("ZeroSpeed", false, IO_INPUT);
}
我尝试过匹配 Qt 的自动连接功能,但没有运气。自动连接能力引用自以下:
我不想在实例化每个新对象后手动连接每个信号。采用以下方式:
connect(ezBool, SIGNAL(localEZBool_Created(EZBool*)),
this, SLOT(on_localEZBool_Created(EZBool*)));
有没有人有任何建议或建议?谢谢!