【发布时间】:2013-05-23 13:55:52
【问题描述】:
如New Signal Slot Syntax 中所述,我无法掌握Qt 5 中新的信号/槽语法(使用指向成员函数的指针)。我试着改变这个:
QObject::connect(spinBox, SIGNAL(valueChanged(int)),
slider, SLOT(setValue(int));
到这里:
QObject::connect(spinBox, &QSpinBox::valueChanged,
slider, &QSlider::setValue);
但是当我尝试编译它时出现错误:
错误:没有匹配的函数调用
QObject::connect(QSpinBox*&, <unresolved overloaded function type>, QSlider*&, void (QAbstractSlider::*)(int))
我在 Linux 上尝试过 clang 和 gcc,两者都使用 -std=c++11。
我做错了什么,我该如何解决?
【问题讨论】:
-
如果你的语法是正确的,那么唯一的解释可能是你没有链接到 Qt5 库,但是例如而是 Qt4。这很容易在“项目”页面上使用 QtCreator 进行验证。
-
我包含了 QObject 的一些子类(QSpinBox 等),因此应该包含 QObject。我确实尝试添加该包含,但它仍然无法编译。
-
另外,我肯定链接到 Qt 5,我使用的是 Qt Creator,我正在测试的两个套件都将 Qt 5.0.1 列为其 Qt 版本。