1

我在“tree.h”中有信号声明:

...
signals:
void doubleClicked(const QModelIndex & index);
...

然后在构造函数中我连接:

connect(this, SIGNAL(doubleClicked(const QModelIndex&)), SLOT(sm(const QModelIndex&)));

没有任何效果,我收到运行时消息:

QMetaObject::indexOfSignal: signal doubleClicked(QModelIndex) from QTreeView redefined in Tree...

我试图解决它几个小时但徒劳无功!

提前谢谢!!!

4

1 回答 1

3

您不能覆盖子类中的信号。另请参阅 如何处理 Qt 子类中的信号?. 无论如何,这是没有意义的,因为信号是由父类中的某些代码发出的,所以如果你想对它做出反应,只需将现有信号从父类连接到你的插槽并删除你在子类中的信号声明.

您收到的错误消息已在 Qt 4.6 中引入,请参阅https://bugreports.qt-project.org/browse/QTBUG-17600以确保您不会意外覆盖子类中的信号。

于 2013-11-06T11:36:38.353 回答