2015-04-20 156 views
0

使用itemFromIndex我在我的形式listWidget,我决定用它我怎么可以在Qt

on_listView_clicked(const QModelIndex &index) 

信号。

在插槽实现我想这是每一次点击的项目,因为我有项目索引我想过使用

QListWidgetItem * curItm = ui->listView->itemFromIndex(index); 

但我得到的错误:

'itemFromIndex' is a protected member of 'QListWidget' 

如何使用此特定功能?

+0

只能从QListWidget(或派生)类调用它。 – vahancho

回答

1

如果不推导QListWidget,则不能使用该特定功能。

最简单的解决办法可能会是简单地使用

QListWidgetItem* curItm = ui->listView->item(index->row()); 
+0

我明白了,谢谢你的建议。对于我试图让它比子类化QListWidget更简单的例子。你有没有想过为什么这个功能会受到保护? – dearn44

+0

@ dearn44不知道为什么它会以任何方式产生问题,使这样的功能公开,但Qt家伙有他们的理由可能 – Bowdzone

1

当使用QListWidget只是利用void itemClicked(QListWidgetItem* item)信号(或激活/变更/ ...)。对于使用QAbstractItemView::clicked(const QModelIndex &index)信号,你将不得不使用子类。

+0

是的我知道你所建议的是最好的方式来做到这一点,但我也有每个项目旁边的复选框,我想检测任何类型的点击。 – dearn44