错误:QMetaObject :: indexOfSignal:来自QTreeView的信号doubleClicked(QModelIndex)重新定义

时间:2013-11-06 11:23:56

标签: c++ qt

我在" 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...

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

Thanx提前!!!

1 个答案:

答案 0 :(得分:3)

您无法覆盖子类中的信号。也可以看看 How to process signals in a Qt subclass?。无论如何它都没有意义,因为信号是由父类中的某些代码发出的,所以如果你想对它做出反应,只需将父类的现有信号连接到你的插槽并删除子类中信号的声明。

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