我有一个处理文件传输的类。
发出的信号之一是finished()
信号
在父端,我想将此finished()
信号连接到fileTransferFinished()
插槽
但是我怎么知道哪个实例完成了呢?因为其中有许多同时运行。
我知道我可以利用QObject::sender()
方法返回发射器,但是这样,我无法访问实例的方法。
qDebug()< getID();
它说no member named getID in QObject
我想将指针放在Slot函数中,这可能吗?
最佳答案
在documentation中查看Object::sender()
的原型:
QObject * QObject::sender() const
它返回一个指向QObject实例的指针,因此您将无法在该返回值上调用
getID()
方法。在使用它之前,将
Object::sender()
的返回值强制转换为类的指针:YourClass * sender_obj = qobject_cast<YourClass*>(QObject::sender());
qDebug() << "finished " << sender_obj->getID();
关于c++ - 在Qt的emit()中传递指向自身的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24344500/