QObject::connect no matching function
QObject::connect no matching function
chip_definition/Isrc/NLBChipDefinitionEditor.C:20: error: no matching function for call to `nlb::gui::chip_definition::ChipDefinitionEditor::connect(QAction*, const char*, nlb::gui::chip_definition::ChipDefinitionEditor* const, const char*)'
我从代码中得到这个错误:
qDebug() << dynamic_cast<QObject*>(this);
connect(m_engine->actionRegister().actionAt(nlb::gui::base::ACTION_ID_CONTEXT_REMOVE_CHIP), SIGNAL(triggered(bool)), this, SLOT(onRemoveSelectedChips()));
错误说明this(ChipDefinitionEditor*)
不是QObject*
,但dynamic_cast
在注释connect
时强制转换为ok。ChipDefinitionEditor
当然是从QObject
衍生出来的。这是怎么发生的?
Qt期望connect
的参数类型为QObject*
。给出如下形式的错误:
no matching function for call to `connect(SOMETYPE*, const char*,
SOMEOTHERTYPE*, const char*)'
编译器隐式地声明它没有显示SOMETYPE
和SOMEOTHERTYPE
是QObject
的信息,给定该翻译单元包含的内容。通常,只要包含SOMETYPE
/SOMEOTHERTYPE
的头文件,编译器就可以确定SOMETYPE
/SOMEOTHERTYPE
是从QObject
继承的。在其他情况下(例如您的情况),您需要确保SOMETYPE
/SOMEOTHERTYPE
已被动态转换为QObject
。
还值得注意的是,当编译器对一种类型有足够的信息而对另一种类型没有足够的信息时,错误消息会略有变化。例如,如果您修复了SOMETYPE
而不是SOMEOTHERTYPE
的错误,则错误消息会略有变化:
no matching function for call to `connect(QObject*, const char*,
SOMEOTHERTYPE*, const char*)'
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- "no matching function for call to 'Vector::Vector'"错误
- 我在 ifstream input_file(文件名)行中收到错误"no matching function to call";
- 为什么当我在 std::string 中打开文件名的 fstream 时出现"no matching function"错误?
- 从 TVector2 类派生复杂类:"No matching function for call to Complex::Complex()"
- 学习 c++,编译错误"no matching function for call"
- C++ "error: no matching function"
- 结构错误:"no matching function for call to "
- 创建函数变体向量时"No matching function for call"错误
- 为什么"std::isdigit"在 Windows 上报告C++"no matching overloaded function"
- 编译时二叉搜索树错误的反向迭代器表示"no matching function call for operator=()"
- 如果子类中没有构造函数方法,则错误"no matching function for call to 'LGame::LGame(String&)'"
- 提升多精度浮点数128:标准::exp错误:'no matching function for call'
- "error: no matching function for call to",我无法更改结构的定义
- 替换派生对象向量中的对象"no matching function to call"
- 我的程序显示许多错误,"error: no matching function for call to 'getPercentScore'"
- 为什么有一个指向此代码行(第 7 行)的"no matching call for function"错误?
- 调用模板函数的问题"No matching function for call"参数:迭代器、对象函数
- 尝试在矢量上使用擦除功能时"no matching function for call"