QListWidget Class

QListWidgetクラスは、アイテムベースのリストウィジェットを提供します。詳細...

ヘッダ #include <QListWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承: QListView

プロパティ

パブリック関数

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, QItemSelectionModel::SelectionFlags command)
void setCurrentRow(int row)
void setItemWidget(QListWidgetItem *item, QWidget *widget)
void setSortingEnabled(bool enable)
void sortItems(Qt::SortOrder order = Qt::AscendingOrder)
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 &currentText)
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()

保護された関数

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

再実装された保護された関数

virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *e) override

詳細説明

QListWidgetは、QListView によって提供されるものに似たリストビューを提供する便利なクラスですが、項目の追加と削除のための古典的な項目ベースのインタフェースを備えています。QListWidgetは、リスト内の各QListWidgetItem を管理するために内部モデルを使用します。

より柔軟なリスト・ビュー・ウィジェットには、標準モデルのQListView クラスを使用してください。

リストウィジェットは、他のウィジェットと同じ方法で構築されます:

    QListWidget *listWidget = new QListWidget(this);

リストウィジェットのselectionMode() は、リスト内のアイテムのいくつを同時に選択できるか、アイテムの複雑な選択を作成できるかどうかを決定します。これはsetSelectionMode() 関数で設定できます。

リストに項目を追加するには、リスト・ウィジェットを親ウィジェットとして作成する方法と、親ウィジェットを持たずに作成し、後でリストに追加する方法があります。項目を作成するときにリストウィジェットがすでに存在する場合は、最初の方法を使うのが簡単です:

    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() シグナルが、新しい現在の項目と、それまで現在の項目であった項目とともに送出される。

QListWidgetItemQListViewQTreeViewモデル/ビュー・プログラミングタブ・ダイアログの例も参照してください

プロパティのドキュメント

[read-only] count : const 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 です。

アクセス関数:

bool isSortingEnabled() const
void setSortingEnabled(bool enable)

メンバ関数ドキュメント

[explicit] QListWidget::QListWidget(QWidget *parent = nullptr)

与えられたparent で空の QListWidget を構築します。

[virtual noexcept] QListWidget::~QListWidget()

リストウィジェットとそのすべてのアイテムを破棄します。

void QListWidget::addItem(QListWidgetItem *item)

リストウィジェットの最後にitem を挿入します。

警告 QListWidgetItemQListWidget に追加できるのは一度だけです。同じQListWidgetItemQListWidget に複数回追加すると、未定義の動作になります。

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 は現在の項目の行である。現在の項目がない場合、 は -1 です。currentRow

注: currentRow プロパティのノーティファイア・シグナル。

[signal] void QListWidget::currentTextChanged(const QString &currentText)

このシグナルは、現在のアイテムが変更されるたびに発行される。

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)

与えられたaction で終了した外部からのドラッグ&ドロップ操作によって与えられたdata を、与えられたindex で処理します。dataaction がモデルで扱える場合はtrue を返し、そうでない場合はfalse を返します。

supportedDropActions()も参照してください

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)

row で指定された位置のリストウィジェットにlabel というテキストを持つ項目を挿入します。

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 を設定します。

この関数は、リスト・ウィジェット・アイテムの代わりに静的コンテンツを表示する場合にのみ使用してください。カスタム動的コンテンツを表示したり、カスタムエディタウィジェットを実装したい場合は、代わりにQListViewQStyledItemDelegate のサブクラスを使用してください。

注: リストはwidget の所有権を持ちます。

itemWidget(),removeItemWidget(),Delegate Classesも参照してください

[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も参照ください

QListWidgetItem *QListWidget::takeItem(int row)

リストウィジェットの指定されたrow からアイテムを削除して返します。そうでない場合はnullptr を返します。

リストウィジェットから削除されたアイテムは Qt によって管理されないので、手動で削除する必要があります。

insertItem() およびaddItem()も参照してください

QRect QListWidget::visualItemRect(const QListWidgetItem *item) const

item のアイテムが占めるビューポート上の矩形を返します。

© 2025 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.