QListWidget Class
QListWidgetクラスは、アイテムベースのリストウィジェットを提供します。詳細...
ヘッダ | #include <QListWidget> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
継承: | QListView |
プロパティ
- count : const int
- currentRow : int
- sortingEnabled : bool
パブリック関数
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 ¤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() |
保護された関数
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() 関数で設定できます。
リストに項目を追加するには、リスト・ウィジェットを親ウィジェットとして作成する方法と、親ウィジェットを持たずに作成し、後でリストに追加する方法があります。項目を作成するときにリストウィジェットがすでに存在する場合は、最初の方法を使うのが簡単です:
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 : 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 を挿入します。
警告 QListWidgetItem をQListWidget に追加できるのは一度だけです。同じ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 は現在の項目の行である。現在の項目がない場合、 は -1 です。currentRow
注: 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)
与えられたaction で終了した外部からのドラッグ&ドロップ操作によって与えられたdata を、与えられたindex で処理します。data とaction がモデルで扱える場合は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 を設定します。
この関数は、リスト・ウィジェット・アイテムの代わりに静的コンテンツを表示する場合にのみ使用してください。カスタム動的コンテンツを表示したり、カスタムエディタウィジェットを実装したい場合は、代わりにQListView とQStyledItemDelegate のサブクラスを使用してください。
注: リストは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.