2015-04-20 153 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