2012-06-28 52 views
13

QListViewで選択したアイテム名をQStringにする必要があります。私はGoogleにしようとしましたが、有用なものは何も見つかりませんでした。QListでQStringを選択する方法Qtで選択したアイテムをQListViewから取得するには?

+3

「QListView」ドキュメント(特にその[メンバリスト](http:// qt-proje)を参照してください) ct.org/doc/qt-4.8/qlistview-members.html))を使って現在のインデックス( 'QModelIndex'オブジェクト)を取得する方法と、インデックスからデータコンテンツを取得する方法(a 'QVariant'を' QString'に変換できます)。 – alexisdm

答えて

17

これはchoiceModeによって異なります。つまり、ExtendedSelectionとすると、任意の数の項目(0を含む)を選択できます。 QAbstractItemView::ExtendedSelectionがで一つのアイテムを選択するためにのみ可能(無効になっている場合場合は

QStringList list; 
foreach(const QModelIndex &index, 
     ui->listView->selectionModel()->selectedIndexes()) 
    list.append(model->itemFromIndex(index)->text()); 
qDebug() << list.join(","); 
+2

'モデル 'とは何ですか? –

+0

'' 'QAbstractItemView :: ExtendedSelection'''が無効になっているQListViewsを使うためのきれいな方法がありますか?私。 1つの選択だけが可能で、ループとリストが不要になるのであれば? – Paddre

8

ui->listView->setSelectionMode(QAbstractItemView::ExtendedSelection); 

選択した項目のインデックスを見つけるためにui->listView->selectionModel()->selectedIndexes()を反復した後、アイテムのテキストを取得するためにtext()メソッドを呼び出す必要があります

QModelIndex index = ui->listView->currentIndex(); 
QString itemText = index.data(Qt::DisplayRole).toString(); 
関連する問題