Qtのコントロール - リスト
ナビゲーションに移動
検索に移動
概要
Qtにおいて、QListWidget
クラスを使用してリストのコントロールの手順を記載する。
似た名前のウィジェットにリストビューがあるので間違えないように注意すること。
ここでは、リストのコントロールIDをlistWidgetとしている。
アイテムの追加
listWidget->clear();
// 文字列を追加する場合
listWidget->addItem( tr("何か文字列") );
現在のアイテムの文字列を取得
QListWidgetItem *pItem = listWidget->currentItem();
QString str = pItem->text();
選択されているアイテムを取得
複数選択が有効になっている場合、複数選択されているアイテムを取得するため、以下のように記述する。
// 選択されているアイテムのリストを取得
QList<QListWidgetItem *> listItems = listWidget->selectedItems();
// 個別のアイテムに対する処理
for(int i = 0; i < listItems.size(); i++)
{
QListWidgetItem *pItem = listItems[i];
}
選択されているアイテムの削除
Qtの公式ドキュメントには、takeItem
メソッドを使用してリストのアイテムを削除するとの記述があるが、
takeItem
メソッドは引数に行番号を1つ渡すだけであるため、複数選択の場合、それらをまとめて削除することができない。
複数選択の場合、まとめて削除する方法は、以下のように記述する。
qDeleteAll(listWidget->selectedItems());
また、以下の方法においても、まとめて削除することができる。
QList<QListWidgetItem *> itemList = listWidget->selectedItems();
for(int i=0; i < itemList.size(); i++)
{
widget->takeItem(listWidget->indexFromItem(itemList[i]));
}