我确实有与 Qt/C++ 中使用的 SIGNAL/SLOT 相关的连接
我使用 QTreeWidget + QTreeWidgetItems 编写了一个应用程序。为了应用程序的需要,我不得不将 QTreeWidgetItem 子类化为 MyQTreeWidgetItem 以添加一些参数。
由于我从 QTreeWidgetItem 类移动到 MyQTreeWidgetItem 类,
connect(this, SIGNAL(itemExpanded(MyQTreeWidgetItem*)),
this, SLOT(onSubTreeDisplay(MyQTreeWidgetItem*)));
不再工作了。
问题是
QObject::connect: No such signal PulsTreeWidget::itemExpanded(MyQTreeWidgetItem*) in ../puls_connect/pulstreewidget.cpp:33
我认为问题出在 itemExpanded 期望 QTreeWidgetItem 而不是 MyQTreeWidgetItem 的事实。但是如果我用 QTreeWidgetItem 替换 MyQTreeWidgetItem ,例如
connect(this, SIGNAL(itemExpanded(QTreeWidgetItem*)),
this, SLOT(onSubTreeDisplay(MyQTreeWidgetItem*)));
运行抱怨 SIGNAL/SLOT 没有相同的类型,这很正常。
我的项目是通过 MyQTreeWidgetItem 而不是 QTreeWidgetItem 定义的,因为我有它的子类。
连接是在 QTreeWidget 部分完成的任何想法?
谢谢