itemDoubleClicked信号用于QListWidgetItem的子类

时间:2013-04-16 19:19:33

标签: c++ qt signals qlistwidget slots

我已经尝试过我所知道的一切(事实上并不是很多)并且搜索谷歌大约一个小时但我无法弄清楚这一点。

我有一个名为PlaceHolder的类,它继承自QListWidgetItem。我希望能够对此进行双击,因此我尝试使用itemDoubleClicked(QListWidgetItem*)上的信号QListWidget。但是,当我这样做时,我需要一个具有相同参数的插槽。如果我不需要访问被点击的PlaceHolder的函数/变量,这不会是一个问题,但我确实这样做了。

如果您需要了解其他任何事情来帮助我,请随时提出。感谢您花费在这个问题上的任何时间和精力。

1 个答案:

答案 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。