QListWidget Class
QListWidget クラスは、項目ベースのリストウィジェットを提供します。詳細...
| ヘッダー: | #include <QListWidget> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 継承元: | QListView |
プロパティ
- count : int
- currentRow : int
- sortingEnabled : bool
(since 6.10)supportedDragActions : Qt::DropActions
パブリック関数
| QListWidget(QWidget *parent = nullptr) | |
| virtual | ~QListWidget() |
| void | addItem(QListWidgetItem *item) |
| void | addItem(const QString &label) |
| void | addItems(const QStringList &labels) |
| void | closePersistentEditor(QListWidgetItem *item) |
| int | count() const |
| QListWidgetItem * | currentItem() const |
| int | currentRow() const |
| void | editItem(QListWidgetItem *item) |
| QList<QListWidgetItem *> | findItems(const QString &text, Qt::MatchFlags flags) const |
| QModelIndex | indexFromItem(const QListWidgetItem *item) const |
| void | insertItem(int row, QListWidgetItem *item) |
| void | insertItem(int row, const QString &label) |
| void | insertItems(int row, const QStringList &labels) |
| bool | isPersistentEditorOpen(QListWidgetItem *item) const |
| bool | isSortingEnabled() const |
| QListWidgetItem * | item(int row) const |
| QListWidgetItem * | itemAt(const QPoint &p) const |
| QListWidgetItem * | itemAt(int x, int y) const |
| QListWidgetItem * | itemFromIndex(const QModelIndex &index) const |
| QWidget * | itemWidget(QListWidgetItem *item) const |
| QList<QListWidgetItem *> | items(const QMimeData *data) const |
| void | openPersistentEditor(QListWidgetItem *item) |
| void | removeItemWidget(QListWidgetItem *item) |
| int | row(const QListWidgetItem *item) const |
| QList<QListWidgetItem *> | selectedItems() const |
| void | setCurrentItem(QListWidgetItem *item) |
| void | setCurrentItem(QListWidgetItem *item, QItemSelectionModel::SelectionFlags command) |
| void | setCurrentRow(int row) |
| void | setCurrentRow(int row, QItemSelectionModel::SelectionFlags command) |
| void | setItemWidget(QListWidgetItem *item, QWidget *widget) |
| void | setSortingEnabled(bool enable) |
| void | setSupportedDragActions(Qt::DropActions actions) |
| void | sortItems(Qt::SortOrder order = Qt::AscendingOrder) |
| Qt::DropActions | supportedDragActions() const |
| QListWidgetItem * | takeItem(int row) |
| QRect | visualItemRect(const QListWidgetItem *item) const |
再実装されたパブリック関数
| virtual void | setSelectionModel(QItemSelectionModel *selectionModel) override |
パブリック・スロット
| void | clear() |
| void | scrollToItem(const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible) |
シグナル
| void | currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous) |
| void | currentRowChanged(int currentRow) |
| void | currentTextChanged(const QString ¤tText) |
| void | itemActivated(QListWidgetItem *item) |
| void | itemChanged(QListWidgetItem *item) |
| void | itemClicked(QListWidgetItem *item) |
| void | itemDoubleClicked(QListWidgetItem *item) |
| void | itemEntered(QListWidgetItem *item) |
| void | itemPressed(QListWidgetItem *item) |
| void | itemSelectionChanged() |
protected 関数
| virtual bool | dropMimeData(int index, const QMimeData *data, Qt::DropAction action) |
| virtual QMimeData * | mimeData(const QList<QListWidgetItem *> &items) const |
| virtual QStringList | mimeTypes() const |
| virtual Qt::DropActions | supportedDropActions() const |
再実装されたプロテクト関数
詳細な説明

QListWidget は、QListView が提供するものと類似したリストビューを提供する利便性向上のためのクラスですが、項目の追加や削除には従来の項目ベースのインターフェースを採用しています。QListWidget は、リスト内の各QListWidgetItem を管理するために内部モデルを使用します。
より柔軟なリストビューウィジェットが必要な場合は、標準モデルとともにQListView クラスを使用してください。
リストウィジェットの構築方法は、他のウィジェットと同様です:
QListWidget *listWidget = new QListWidget(this);リストウィジェットのselectionMode()は、リスト内のアイテムのうち同時にいくつを選択できるか、および複雑なアイテムの選択を作成できるかどうかを決定します。これはsetSelectionMode()関数で設定できます。
リストに項目を追加するには2つの方法があります。リストウィジェットを親ウィジェットとして項目を作成する方法と、親ウィジェットなしで項目を作成し、後でリストに追加する方法です。項目を作成する際にリストウィジェットがすでに存在している場合は、前者の方法の方が使いやすいです:
new QListWidgetItem(tr("Oak"), listWidget);
new QListWidgetItem(tr("Fir"), listWidget);
new QListWidgetItem(tr("Pine"), listWidget);リストの特定の位置に新しい項目を挿入する必要がある場合は、親ウィジェットなしで項目を作成する必要があります。その後、insertItem() 関数を使用して、その項目をリスト内に配置します。リストウィジェットがその項目の所有権を引き継ぎます。
QListWidgetItem *newItem = new QListWidgetItem;
newItem->setText(itemText);
listWidget->insertItem(row, newItem);複数のアイテムの場合は、代わりにinsertItems()を使用できます。リスト内のアイテム数は、count()関数で確認できます。リストからアイテムを削除するには、takeItem()を使用します。
リスト内の現在のアイテムはcurrentItem() で取得でき、setCurrentItem() で変更できます。また、ユーザーはキーボード操作や別のアイテムをクリックすることで、現在のアイテムを変更することもできます。現在のアイテムが変更されると、currentItemChanged() シグナルが発信され、新しい現在のアイテムと、以前現在のアイテムだったものが通知されます。
関連項目: QListWidgetItem 、QListView 、QTreeView 、モデル/ビュープログラミング、およびタブダイアログの例。
プロパティのドキュメント
[read-only] count : int
このプロパティには、非表示の項目も含めたリスト内の項目の数が格納されます。
アクセス関数:
| int | count() const |
currentRow : int
このプロパティには、現在の項目の行が格納されます。
現在の選択モードによっては、その行が選択される場合もあります。
アクセス関数:
| int | currentRow() const |
| void | setCurrentRow(int row) |
| void | setCurrentRow(int row, QItemSelectionModel::SelectionFlags command) |
通知シグナル:
| void | currentRowChanged(int currentRow) |
sortingEnabled : bool
このプロパティは、ソートが有効かどうかを示します
このプロパティがtrue の場合、リストの並べ替えが有効になります。falseの場合、並べ替えは無効になります。
デフォルト値は false です。
アクセス関数:
| bool | isSortingEnabled() const |
| void | setSortingEnabled(bool enable) |
[since 6.10] supportedDragActions : Qt::DropActions
このプロパティには、このビューでサポートされているドラッグ操作が格納されます
この列挙型は Qt 6.10 で導入されました。
アクセス関数:
| Qt::DropActions | supportedDragActions() const |
| void | setSupportedDragActions(Qt::DropActions actions) |
Qt::DropActions およびsupportedDropActions()も参照してください 。
メンバ関数のドキュメント
[explicit] QListWidget::QListWidget(QWidget *parent = nullptr)
指定されたparent を使用して、空のQListWidgetを構築します。
[virtual noexcept] QListWidget::~QListWidget()
リストウィジェットとそのすべての項目を破棄します。
void QListWidget::addItem(QListWidgetItem *item)
リストウィジェットの末尾に「item 」を挿入します。
警告: ` QListWidgetItem ` は 、QListWidget に対して 1 回のみ追加できます。同じ `QListWidgetItem ` を `QListWidget ` に複数回追加すると、未定義の挙動が発生します。
「insertItem()」も参照してください 。
void QListWidget::addItem(const QString &label)
リストウィジェットの末尾に、「label 」というテキストを含む項目を挿入します。
void QListWidget::addItems(const QStringList &labels)
リストウィジェットの末尾に、「labels 」というテキストを含む項目を挿入します。
「insertItems()」も参照してください 。
[slot] void QListWidget::clear()
ビュー内のすべてのアイテムと選択範囲を削除します。
警告:すべての アイテムが完全に削除されます。
void QListWidget::closePersistentEditor(QListWidgetItem *item)
指定されたitem の永続エディタを閉じます。
openPersistentEditor() およびisPersistentEditorOpen()も参照してください 。
QListWidgetItem *QListWidget::currentItem() const
現在の項目を返します。
setCurrentItem()も参照してください 。
[signal] void QListWidget::currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
このシグナルは、現在の項目が変更されるたびに発火します。
previous は、直前にフォーカスが当たっていた項目です。current は、新しい現在の項目です。
[signal] void QListWidget::currentRowChanged(int currentRow)
この信号は、現在のアイテムが変更されるたびに発生します。
currentRow は現在の項目の行番号です。現在の項目がない場合、currentRow は -1 になります。
注: プロパティ `currentRow` に対する通知 シグナルです。
[signal] void QListWidget::currentTextChanged(const QString ¤tText)
このシグナルは、現在の項目が変更されるたびに発生します。
currentText は、現在の項目のテキストデータです。現在の項目が存在しない場合、currentText は無効となります。
[override virtual protected] void QListWidget::dropEvent(QDropEvent *event)
QListView::dropEvent(QDropEvent *event) を再実装します。
[virtual protected] bool QListWidget::dropMimeData(int index, const QMimeData *data, Qt::DropAction action)
指定されたindex 内で、指定されたaction で終了した外部のドラッグ&ドロップ操作によって渡されたdata を処理します。data およびaction をモデルが処理できる場合はtrue を返し、そうでない場合はfalse を返します。
supportedDropActions() およびsupportedDragActionsも参照してください 。
void QListWidget::editItem(QListWidgetItem *item)
item が編集可能な場合は、その編集を開始します。
[override virtual protected] bool QListWidget::event(QEvent *e)
QListView::event(QEvent *e) を再実装します。
QList<QListWidgetItem *> QListWidget::findItems(const QString &text, Qt::MatchFlags flags) const
指定されたflags を使用して、文字列text と一致するテキストを含む項目を検索します。
QModelIndex QListWidget::indexFromItem(const QListWidgetItem *item) const
指定されたitem に関連付けられたQModelIndex を返します。
注: Qt 5.10 以前のバージョンでは 、この関数はconst ではないitem を受け取っていました。
void QListWidget::insertItem(int row, QListWidgetItem *item)
リスト内のrow で指定された位置に、item を挿入します。
addItem()も参照してください 。
void QListWidget::insertItem(int row, const QString &label)
リストウィジェットに、「label 」というテキストを持つ項目を、row で指定された位置に挿入します。
addItem()も参照してください 。
void QListWidget::insertItems(int row, const QStringList &labels)
labels のリストに含まれる項目を、指定されたrow を起点としてリストに挿入します。
insertItem() およびaddItem()も参照してください 。
bool QListWidget::isPersistentEditorOpen(QListWidgetItem *item) const
アイテムitem に対して、永続エディタが開かれているかどうかを返します。
openPersistentEditor() およびclosePersistentEditor()も参照してください 。
QListWidgetItem *QListWidget::item(int row) const
リスト内で指定されたrow を持つ項目が設定されている場合はそれを返し、設定されていない場合はnullptr を返します。
row()も参照してください 。
[signal] void QListWidget::itemActivated(QListWidgetItem *item)
この信号は、item がアクティブになったときに発信されます。item は、システムの設定に応じて、ユーザーがそれをクリックまたはダブルクリックしたときにアクティブになります。また、ユーザーがアクティベーションキーを押したときにもアクティブになります(WindowsおよびX11ではReturn キー、Mac OS XではCommand+O です)。
QListWidgetItem *QListWidget::itemAt(const QPoint &p) const
座標 `p` にある項目へのポインタを返します。この座標は、リストウィジェットの `viewport()` に対する相対座標です。
QListWidgetItem *QListWidget::itemAt(int x, int y) const
座標 (x,y) にある項目へのポインタを返します。座標は、リストウィジェットの `viewport()` に対する相対座標です。
これはオーバーロードされた関数です。
[signal] void QListWidget::itemChanged(QListWidgetItem *item)
この信号は、item のデータが変更されるたびに発信されます。
[signal] void QListWidget::itemClicked(QListWidgetItem *item)
このシグナルは、ウィジェット内のアイテム上でマウスボタンがクリックされた際に、指定されたitem とともに発火します。
itemPressed() およびitemDoubleClicked()も参照してください 。
[signal] void QListWidget::itemDoubleClicked(QListWidgetItem *item)
このシグナルは、ウィジェット内のアイテム上でマウスボタンをダブルクリックした際に、指定されたitem とともに発火します。
itemClicked() およびitemPressed()も参照してください 。
[signal] void QListWidget::itemEntered(QListWidgetItem *item)
このシグナルは、マウスカーソルがアイテムに進入したときに発せられます。item は、進入したアイテムです。このシグナルは、mouseTracking がオンになっている場合、またはアイテムに進入中にマウスボタンが押された場合にのみ発せられます。
QWidget::setMouseTracking()も参照してください 。
QListWidgetItem *QListWidget::itemFromIndex(const QModelIndex &index) const
指定されたindex に関連付けられたQListWidgetItem へのポインタを返します。
[signal] void QListWidget::itemPressed(QListWidgetItem *item)
このシグナルは、ウィジェット内のアイテム上でマウスボタンが押されたときに、指定されたitem とともに発火します。
itemClicked() およびitemDoubleClicked()も参照してください 。
[signal] void QListWidget::itemSelectionChanged()
このシグナルは、選択内容が変更されるたびに発信されます。
selectedItems()、QListWidgetItem::isSelected()、およびcurrentItemChanged()も参照してください 。
QWidget *QListWidget::itemWidget(QListWidgetItem *item) const
指定されたitem に表示されているウィジェットを返します。
setItemWidget() およびremoveItemWidget()も参照してください 。
QList<QListWidgetItem *> QListWidget::items(const QMimeData *data) const
data オブジェクトに含まれる項目へのポインタのリストを返します。そのオブジェクトが、同じプロセス内のQListWidget によって作成されたものでない場合、リストは空になります。
[virtual protected] QMimeData *QListWidget::mimeData(const QList<QListWidgetItem *> &items) const
指定されたitems のシリアライズされた記述を含むオブジェクトを返します。項目の記述に使用される形式は、mimeTypes()関数から取得されます。
項目のリストが空の場合、シリアライズされた空のリストの代わりにnullptr が返されます。
[virtual protected] QStringList QListWidget::mimeTypes() const
リストウィジェットの項目のリストを記述するために使用できるMIMEタイプのリストを返します。
mimeData()も参照してください 。
void QListWidget::openPersistentEditor(QListWidgetItem *item)
指定されたitem のエディタを開きます。編集後もエディタは開いたままになります。
closePersistentEditor() およびisPersistentEditorOpen()も参照してください 。
void QListWidget::removeItemWidget(QListWidgetItem *item)
指定されたitem に設定されたウィジェットを削除します。
リストから項目(行)を完全に削除するには、その項目を削除するか、takeItem() を使用してください。
itemWidget() およびsetItemWidget()も参照してください 。
int QListWidget::row(const QListWidgetItem *item) const
指定されたitem を含む行を返します。
item()も参照してください 。
[slot] void QListWidget::scrollToItem(const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)
必要に応じてビューをスクロールし、item が確実に表示されるようにします。
hint 操作後にitem を配置する位置を指定します。
QList<QListWidgetItem *> QListWidget::selectedItems() const
リストウィジェットで選択されているすべての項目のリストを返します。
void QListWidget::setCurrentItem(QListWidgetItem *item)
現在の項目を「item 」に設定します。
選択モードがNoSelection でない限り、その項目も選択されます。
currentItem()も参照してください 。
void QListWidget::setCurrentItem(QListWidgetItem *item, QItemSelectionModel::SelectionFlags command)
指定されたcommand を使用して、現在の項目をitem に設定します。
void QListWidget::setCurrentRow(int row, QItemSelectionModel::SelectionFlags command)
指定された `command` を使用して、現在の行を指定された `row` に設定します。
注: プロパティ `currentRow`のセッター 関数です。
関連項目: currentRow()。
void QListWidget::setItemWidget(QListWidgetItem *item, QWidget *widget)
指定されたitem 内に表示されるwidget を設定します。
この関数は、リストウィジェットの項目の代わりに静的なコンテンツを表示する場合にのみ使用してください。カスタムの動的コンテンツを表示したり、カスタムエディタウィジェットを実装したりする場合は、代わりにQListView を使用し、QStyledItemDelegate をサブクラス化してください。
注:リストは `widget` の所有権を取得します。
関連項目: ` itemWidget()`、`removeItemWidget()`、およびデリゲートクラス。
[override virtual] void QListWidget::setSelectionModel(QItemSelectionModel *selectionModel)
QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel) を再実装します。
void QListWidget::sortItems(Qt::SortOrder order = Qt::AscendingOrder)
リストウィジェット内のすべての項目を、指定されたorder に基づいて並べ替えます。
[virtual protected] Qt::DropActions QListWidget::supportedDropActions() const
このビューでサポートされているドロップ操作を返します。
Qt::DropActions 、supportedDragActions 、およびdropMimeData()も参照してください 。
QListWidgetItem *QListWidget::takeItem(int row)
リストウィジェット内の指定されたrow からアイテムを削除して返します。そうでない場合は、nullptr を返します。
リストウィジェットから削除された項目はQtによって管理されなくなるため、手動で削除する必要があります。
insertItem() およびaddItem()も参照してください 。
QRect QListWidget::visualItemRect(const QListWidgetItem *item) const
item における、そのアイテムがビューポート上で占める矩形を返します。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.