QListWidget Class

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

Header: #include <QListWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: 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 の場合、ソートは有効ではない。

デフォルト値は 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 にあるアイテムが占めるビューポート上の矩形を返します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。