我已经尝试过我所知道的一切(事实上并不是很多)并且搜索谷歌大约一个小时但我无法弄清楚这一点。
我有一个名为PlaceHolder
的类,它继承自QListWidgetItem
。我希望能够对此进行双击,因此我尝试使用itemDoubleClicked(QListWidgetItem*)
上的信号QListWidget
。但是,当我这样做时,我需要一个具有相同参数的插槽。如果我不需要访问被点击的PlaceHolder
的函数/变量,这不会是一个问题,但我确实这样做了。
如果您需要了解其他任何事情来帮助我,请随时提出。感谢您花费在这个问题上的任何时间和精力。
答案 0 :(得分:1)
我对你的问题有点不清楚。问题是你有一个QListWidgetItem *而不是PlaceHolder *?
尝试:
void MyWidget::handleDoubleClickSlot(QListWidgetItem* item)
{
PlaceHolder* placeHolderItem = qobject_cast<PlaceHolder*>(item);
if (placeHolderItem == NULL)
{
// oops, not a PlaceHolder item
return;
}
placeHolderItem->myAwesomePlaceHolderMethod();
}
如图所示,如果该项目不是PlaceHolder对象,它将返回NULL。