新的Qt信号语法错误与重载没有这个
New Qt signals syntax error with overload without this
当我写
connect(m_someClasspointer, &SomeClassName::SignalA, &CurrentClass::slotMethod);
I got error
error: no matching function for call to 'QtPrivate::FunctionPointer<void (CurrentClass::*)()>::call(void (CurrentClass::*&)(), QObject*&, void**&)'
FuncType::template call<Args, R>(static_cast<QStaticSlotObject*>(this_)->function, r, a);
,
connect(m_someClasspointer, &SomeClassName::Signal, this, &CurrentClass::slotMethod);
一切正常。但是在QObject
中有重载inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal,
const char *amember, Qt::ConnectionType atype) const
所以我绝对不明白为什么第一个变体不工作。
您正在尝试传递直接函数指针,而您引用的重载采用const char *
。如果你仔细观察,你会发现模板支持直接传递函数指针,并且该模板没有非静态形式。
对于使用const char *
的重载,使用宏SIGNAL和SLOT,例如SIGNAL(SignalA())
和SLOT(slotMethod())
相关文章:
- 继承函数的重载解析
- Qt VTK交互风格的信号到小部件
- QT在错误的班级中寻找空位
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 在Qt小部件应用程序中,在重载的"paintEvent"中的"setValue"
- QT Qt并发运行与重载类函数
- Qt重载运算符
- Qt/Qml 和方法重载
- Qt C++新的类似方法.我是重载方法、编写新方法还是使用默认参数
- QT - QAction::eventFilter:不明确的快捷方式重载
- 如何映射到重载Qt插槽
- Qt C++运算符 == 重载 Qlist 未调用
- 如何在qt c++中的子类中重载超类方法
- 关于Qt MessageBox::warning()重载
- 如何使用QT命名空间中使用的重载new操作符
- 新的Qt信号语法错误与重载没有这个
- 在QT中重载QDebug
- Qt - 带有重载运算符的 QDataStream<<用于对象指针 (Class*)
- Qt—未解析的重载函数类型
- std::thread::thread(<未解析的重载函数类型>) in Qt