包装QObject::连接错误
Wrapping QObject::connect error
我正在编写一个订阅管理器,其想法是创建一个信号和插槽连接,可以在插槽上挂接多个订阅,当收到更新时,所有对插槽的订阅都将收到新数据的通知。
问题是,在我管理订阅的类中,有一个名为"setupSubscription"的方法,这里是原型:
void setupSubscription(enum eSlotID ID
,const QObject* pobjSender
,const QMetaMethod& pobjSignal
,const QMetaMethod& pobjSlot);
枚举类型eSlotID为每个插槽包含一个唯一的ID,其思想是订阅者只需指定ID即可设置订阅。
它处于开发的早期阶段,setupSubscription:的代码
void clsSlotSub::setupSubscription(enum eSlotID ID
,const QObject* pobjSender
,const QMetaMethod& pobjSignal
,const QMetaMethod& pobjSlot) {
QObject::connect(pobjSender, pobjSignal, this, pobjSlot);
}
当然,还有很多事情要做,但这会导致编译时出错:
error: no matching function for call to 'clsSlotSub::setupSubscription(clsSlotSub::eSlotID, Fcs::Mount*, void (Fcs::Mount::*)(Fcs::qfloat32), void (clsSlotSub::*)(float))'
,&clsSlotSub::update2Elevation);
^
我相信原型是正确的,在将其封装在我的设置方法中之前,先在调试器中单步完成连接。
我不确定这个错误意味着什么,因为类实现和原型匹配并且存在。
用法示例:
msSlotSubMngr.setupSubscription(clsSlotSub::ELEVATION_ANGLE
,Fcs::Mount::GetRef()
,&Fcs::Mount::signalElevation
,&clsSlotSub::update2Elevation);
msSlotSubMngr是插槽订阅类的一个实例。
这是包装前的原始代码,编译时没有任何错误:
QObject::connect(Fcs::Mount::GetRef()
,&Fcs::Mount::signalElevation
,mpobjElevStrip
,&clsElevStrip::elevationChanged);
当我单独设置工作代码时,这是连接方法的原型:
static QMetaObject::Connection connect(const QObject *sender
,const QMetaMethod &signal
,const QObject *receiver
,const QMetaMethod &method
,Qt::ConnectionType type = Qt::AutoConnection);
eSlotID:声明
enum eSlotID {
...
/*1003*/ ,ELEVATION_ANGLE
...
};
插槽原型:
void update2Elevation(float fltValue);
插槽实现:
void clsSlotSub::update2Elevation(float fltValue) {
qDebug() << "clsSlotSub::New elevation: " << fltValue;
}
您需要显示您的调用代码。从错误消息中,您似乎只是拼错了setupSubscription。
发现了与原型完全无关的问题,但编译器没有报告错误/原因。事实证明,所需的页眉不包括在内。
相关文章:
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- 使用 bfs 解决连接组件问题时得到错误的答案
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- CMake 错误"源似乎不包含 CMakeLists.txt",路径/库连接问题
- 当客户端在 write() 期间终止连接时,由对等套接字错误重置连接
- 从 Linux OMI (omicli) 到 Windows WMI 的连接失败,并出现与 DMTF 相关的错误
- C++ 中连接 4 游戏的输入逻辑错误
- Eclipse:错误:初始化模式失败(无法连接到目标)
- C++所有 AT 命令的短信返回错误 |PC<->通过蓝牙和winsocket的移动连接
- 如何修复数据库连接的C 程序运行时间错误(0xc0000005)
- Mongocxx 连接错误
- 连接到套接字失败 - 错误编号 88 (CPP)
- 尝试重新连接到服务器时获取错误提升 asio 连接超时
- 字符和 int 连接何时会导致 seg 错误?
- 在 ZeroMQ 中绑定订阅者套接字并连接发布者套接字会在代码运行时给出错误.为什么
- JNI - WMI 连接错误
- boost :: Asio连接错误的界面
- 如何在两个设备之间与TCP通信时修复错误"连接被拒绝"