QListView Class

QListViewクラスは、モデル上にリストやアイコンのビューを提供します。詳細...

ヘッダー #include <QListView>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
を継承する: QAbstractItemView
によって継承される:

QHelpIndexWidget,QListWidget, およびQUndoView

パブリックな型

enum Flow { LeftToRight, TopToBottom }
enum LayoutMode { SinglePass, Batched }
enum Movement { Static, Free, Snap }
enum ResizeMode { Fixed, Adjust }
enum ViewMode { ListMode, IconMode }

プロパティ

パブリック関数

QListView(QWidget *parent = nullptr)
virtual ~QListView()
int batchSize() const
void clearPropertyFlags()
QListView::Flow flow() const
QSize gridSize() const
bool isRowHidden(int row) const
bool isSelectionRectVisible() const
bool isWrapping() const
Qt::Alignment itemAlignment() const
QListView::LayoutMode layoutMode() const
int modelColumn() const
QListView::Movement movement() const
QListView::ResizeMode resizeMode() const
void setBatchSize(int batchSize)
void setFlow(QListView::Flow flow)
void setGridSize(const QSize &size)
void setItemAlignment(Qt::Alignment alignment)
void setLayoutMode(QListView::LayoutMode mode)
void setModelColumn(int column)
void setMovement(QListView::Movement movement)
void setResizeMode(QListView::ResizeMode mode)
void setRowHidden(int row, bool hide)
void setSelectionRectVisible(bool show)
void setSpacing(int space)
void setUniformItemSizes(bool enable)
void setViewMode(QListView::ViewMode mode)
void setWordWrap(bool on)
void setWrapping(bool enable)
int spacing() const
bool uniformItemSizes() const
QListView::ViewMode viewMode() const
bool wordWrap() const

再実装パブリック関数

virtual QModelIndex indexAt(const QPoint &p) const override
virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) override
virtual void setRootIndex(const QModelIndex &index) override
virtual QRect visualRect(const QModelIndex &index) const override

シグナル

void indexesMoved(const QModelIndexList &indexes)

保護された関数

QRect rectForIndex(const QModelIndex &index) const
void setPositionForIndex(const QPoint &position, const QModelIndex &index)

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

virtual void currentChanged(const QModelIndex &current, const QModelIndex &previous) override
virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>()) override
virtual void dragLeaveEvent(QDragLeaveEvent *e) override
virtual void dragMoveEvent(QDragMoveEvent *e) override
virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *e) override
virtual int horizontalOffset() const override
virtual void initViewItemOption(QStyleOptionViewItem *option) const override
virtual bool isIndexHidden(const QModelIndex &index) const override
virtual void mouseMoveEvent(QMouseEvent *e) override
virtual void mouseReleaseEvent(QMouseEvent *e) override
virtual QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override
virtual void paintEvent(QPaintEvent *e) override
virtual void resizeEvent(QResizeEvent *e) override
virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) override
virtual void rowsInserted(const QModelIndex &parent, int start, int end) override
virtual void scrollContentsBy(int dx, int dy) override
virtual QModelIndexList selectedIndexes() const override
virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override
virtual void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) override
virtual void startDrag(Qt::DropActions supportedActions) override
virtual void timerEvent(QTimerEvent *e) override
virtual void updateGeometries() override
virtual int verticalOffset() const override
virtual QSize viewportSizeHint() const override
virtual QRegion visualRegionForSelection(const QItemSelection &selection) const override
virtual void wheelEvent(QWheelEvent *e) override

詳細説明

QListViewは、モデルに格納されたアイテムを、単純な非階層リストとして、またはアイコンのコレクションとして表示します。このクラスは、以前はQListBoxQIconView クラスによって提供されていたリストやアイコンビューを、Qt のモデル/ビューアーキテクチャによって提供されるより柔軟なアプローチで提供するために使用されます。

QListViewクラスはモデル/ビュー・クラスの1つで、Qtのモデル/ビュー・フレームワークの一部です。

このビューは、水平方向や垂直方向のヘッダーを表示しません。水平方向のヘッダーを持つアイテムのリストを表示するには、代わりにQTreeView を使用してください。

QListViewは、QAbstractItemModel クラスから派生したモデルによって提供されたデータを表示できるように、QAbstractItemView クラスによって定義されたインターフェースを実装しています。

リスト・ビューの項目は、2つのビュー・モードのいずれかを使用して表示できます:ListMode では、項目は単純なリストの形で表示されます。IconMode では、リスト・ビューはアイコン・ビューの形をとり、項目はファイル・マネージャのファイルのようなアイコンで表示されます。デフォルトでは、リスト表示はListMode になっている。ビュー・モードを変更するには、setViewMode ()関数を使用し、現在のビュー・モードを決定するには、viewMode ()関数を使用する。

これらのビューの項目は、リスト・ビューのflow() で指定された方向にレイアウトされる。ビューのmovement() の状態によって、項目は固定されたり、移動が許可されたりします。

モデルのアイテムが流れ方向に完全にレイアウトできない場合、ビューウィジェットの境界でラップすることができます。これはisWrapping() に依存します。このプロパティは、アイテムがアイコン・ビューで表現されている場合に便利です。

resizeMode ()とlayoutMode ()は、アイテムのレイアウト方法とタイミングを制御します。アイテムは、spacing ()に従って間隔が置かれ、gridSize ()で指定されたサイズの想定グリッド内に存在することができます。アイテムは、iconSize ()に応じて、大小のアイコンとしてレンダリングされる。

パフォーマンスの向上

多数のアイテムを表示する際のパフォーマンスを向上させるために、ビューが扱うデータに関するヒントを与えることが可能です。等しいサイズのアイテムを表示することを意図しているビューのために取ることができる1つのアプローチは、uniformItemSizes プロパティをtrueに設定することです。

ビュークラスQTreeViewQTableViewQListWidgetも参照してください

メンバ型ドキュメント

enum QListView::Flow

定数説明
QListView::LeftToRight0アイテムはビュー内で左から右にレイアウトされます。
QListView::TopToBottom1アイテムは、ビューで上から下にレイアウトされます。

enum QListView::LayoutMode

定数説明
QListView::SinglePass0アイテムは一度に並べられる。
QListView::Batched1アイテムはbatchSize アイテム単位で並べられます。

batchSizeも参照してください

enum QListView::Movement

定数説明
QListView::Static0アイテムはユーザーによって移動できません。
QListView::Free1アイテムはユーザが自由に移動できる。
QListView::Snap2アイテムを移動すると、指定したグリッドにスナップします。setGridSize() を参照してください。

enum QListView::ResizeMode

定数説明
QListView::Fixed0アイテムは、ビューが最初に表示された時のみレイアウトされます。
QListView::Adjust1アイテムは、ビューのサイズが変更されるたびにレイアウトされます。

enum QListView::ViewMode

定数説明
QListView::ListMode0アイテムは、TopToBottom フローを使用してレイアウトされます。
QListView::IconMode1アイテムは、LeftToRight フローを使用してレイアウトされ、サイズは大きく、移動は自由です。

プロパティの説明

batchSize : int

このプロパティは、layoutModeBatched に設定されている場合に、各バッチにレイアウトされるアイテムの数を保持する。

デフォルト値は100である。

アクセス関数:

int batchSize() const
void setBatchSize(int batchSize)

flow : Flow

このプロパティは、アイテムのレイアウトをどの方向に流すかを保持する。

このプロパティがLeftToRight の場合、アイテムは左から右にレイアウトされます。isWrapping プロパティがtrue の場合、レイアウトは可視領域の右側に達すると折り返されます。このプロパティがTopToBottom の場合、アイテムは可視領域の上側からレイアウトされ、下側に達すると折り返されます。

ビューが表示されているときにこのプロパティを設定すると、アイテムは再びレイアウトされます。

デフォルトでは、このプロパティはTopToBottom に設定されています。

アクセス関数:

QListView::Flow flow() const
void setFlow(QListView::Flow flow)

viewModeも参照してください

gridSize : QSize

このプロパティは、レイアウトグリッドのサイズを保持する

このプロパティは、アイテムがレイアウトされるグリッドのサイズです。デフォルトは空のサイズで、これはグリッドがなく、レイアウトがグリッドで行われないことを意味します。このプロパティを空でないサイズに設定すると、グリッドレイアウトが有効になります。(グリッドレイアウトが有効な場合、spacing プロパティは無視されます)。

ビューが表示されているときにこのプロパティを設定すると、アイテムが再びレイアウトされます。

アクセス関数:

QSize gridSize() const
void setGridSize(const QSize &size)

viewModeも参照してください

isWrapping : bool

このプロパティは、アイテムのレイアウトを折り返すかどうかを保持します。

このプロパティは、可視領域にスペースがなくなったときにレイアウトを折り返すかどうかを保持します。レイアウトが折り返されるポイントは、flow プロパティに依存します。

ビューが表示されているときにこのプロパティを設定すると、アイテムが再びレイアウトされます。

デフォルトでは、このプロパティはfalse です。

アクセス関数です:

bool isWrapping() const
void setWrapping(bool enable)

viewModeも参照してください

itemAlignment : Qt::Alignment

このプロパティは、セル内の各項目の配置を保持する。

このプロパティは、ListModeTopToBottom フローがあり、折り返しが有効になっている場合にのみサポートされます。デフォルトの整列は0であり、これは項目がそのセルを完全に埋めることを意味する。

アクセス関数:

Qt::Alignment itemAlignment() const
void setItemAlignment(Qt::Alignment alignment)

layoutMode : LayoutMode

は、アイテムのレイアウトを即座に行うか、遅延させるかを決定する。

このプロパティは、アイテムのレイアウトモードを保持します。モードがSinglePass (デフォルト)の場合、アイテムはすべて一度にレイアウトされます。モードがBatched の場合、batchSize のアイテムがイベント処理中に一括でレイアウトされます。これにより、残りのアイテムがレイアウトされている間に、表示されているアイテムを即座に表示し、操作することができます。

アクセス機能:

QListView::LayoutMode layoutMode() const
void setLayoutMode(QListView::LayoutMode mode)

viewModeも参照

modelColumn : int

このプロパティは、表示されるモデルの列を保持します。

デフォルトでは、このプロパティには0が格納され、モデルの最初の列が表示されることを示します。

アクセス関数:

int modelColumn() const
void setModelColumn(int column)

movement : Movement

このプロパティは、アイテムが自由に移動できるか、グリッドにスナップされるか、または全く移動できないかを保持します。

このプロパティは、ユーザーがビュー内のアイテムをどのように移動できるかを決定します。Static は、ユーザーがアイテムを移動できないことを意味します。Free は、ユーザーがビュー内の任意の位置にアイテムをドラッグ&ドロップできることを意味します。Snap は、ユーザーがアイテムをドラッグ&ドロップできることを意味しますが、gridSize プロパティで指定された想定グリッドの位置にのみ移動できます。

ビューが表示されているときにこのプロパティを設定すると、アイテムは再びレイアウトされます。

デフォルトでは、このプロパティはStatic に設定されています。

アクセス関数:

QListView::Movement movement() const
void setMovement(QListView::Movement movement)

gridSizeresizeModeviewModeも参照してください

resizeMode : ResizeMode

このプロパティは、ビューのサイズが変更されたときにアイテムが再度レイアウトされるかどうかを保持する。

このプロパティがAdjust の場合、ビューのサイズが変更されたときにアイテムが再度レイアウトされます。値がFixed の場合、ビューのサイズが変更されたときにアイテムはレイアウトされません。

デフォルトでは、このプロパティはFixed に設定されています。

アクセス関数:

QListView::ResizeMode resizeMode() const
void setResizeMode(QListView::ResizeMode mode)

movementgridSizeviewModeも参照

selectionRectVisible : bool

選択矩形を可視にする場合

このプロパティがtrue の場合、選択矩形は可視となり、そうでない場合は非表示となります。

注意: 選択矩形が表示されるのは、選択モードが複数の項目を選択できるモードである場合のみです;つまり、選択モードがQAbstractItemView::SingleSelection の場合は選択矩形は描画されません。

デフォルトでは、このプロパティはfalse です。

アクセス関数:

bool isSelectionRectVisible() const
void setSelectionRectVisible(bool show)

spacing : int

このプロパティは、レイアウト内のアイテムの周りのスペースを保持します。

このプロパティは、レイアウト内のアイテムの周りにパッドされる空のスペースのサイズです。

ビューが表示されているときにこのプロパティを設定すると、アイテムが再度レイアウトされます。

デフォルトでは、このプロパティの値は0です。

アクセス関数:

int spacing() const
void setSpacing(int space)

viewModeも参照してください

uniformItemSizes : bool

このプロパティは、リストビュー内のすべてのアイテムが同じサイズであるかどうかを保持します。

このプロパティは、ビュー内のすべてのアイテムのサイズが同じであることが保証されている場合にのみ、true に設定する必要があります。これにより、ビューはパフォーマンス目的でいくつかの最適化を行うことができます。

デフォルトでは、このプロパティはfalse です。

アクセス関数:

bool uniformItemSizes() const
void setUniformItemSizes(bool enable)

viewMode : ViewMode

このプロパティはQListView のビューモードを保持する。

このプロパティは、他の未設定のプロパティを、設定されたビュー・モードに適合するように変更する。QListView clearPropertyFlags ()が呼び出されない限り、既に設定されている特定のプロパティは変更されません。

ビュー・モードを設定すると、選択された動きに基づいてドラッグ・アンド・ドロップが有効または無効になります。ListMode の場合、デフォルトの動きはStatic (ドラッグ・アンド・ドロップ無効)です。IconMode の場合、デフォルトの動きはFree (ドラッグ・アンド・ドロップ有効)です。

アクセス関数:

QListView::ViewMode viewMode() const
void setViewMode(QListView::ViewMode mode)

isWrappingspacinggridSizeflowmovementresizeModeも参照してください

wordWrap : bool

このプロパティは、項目テキストの単語折り返しポリシーを保持する。

このプロパティがtrue の場合、アイテムのテキストは必要に応じて単語区切りで折り返されます。このプロパティはデフォルトでfalse です。

折り返しが有効になっていても、テキストが入るスペースを確保するためにセルが拡張されるわけではないことに注意してください。ビューのtextElideMode に従って、表示できないテキストには省略記号が表示されます。

アクセス関数:

bool wordWrap() const
void setWordWrap(bool on)

メンバ関数ドキュメント

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

モデルを表示するために、与えられたparent で新しい QListView を作成します。モデルを設定するにはsetModel() を使用します。

[virtual noexcept] QListView::~QListView()

景観を破壊する。

void QListView::clearPropertyFlags()

QListView-固有のプロパティフラグをクリアする。viewMode を参照してください。

QAbstractItemView から継承されたプロパティは、プロパティ・フラグの対象外である。具体的には、dragEnabled およびacceptsDrops は、setMovement() またはsetViewMode() を呼び出す際に、QListView によって計算される。

[override virtual protected] void QListView::currentChanged(const QModelIndex &current, const QModelIndex &previous)

再実装:QAbstractItemView::currentChanged(const QModelIndex &current, const QModelIndex &previous)。

[override virtual protected] void QListView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>())

再実装:QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles)。

[override virtual protected] void QListView::dragLeaveEvent(QDragLeaveEvent *e)

再実装:QAbstractItemView::dragLeaveEvent(QDragLeaveEvent *event)。

[override virtual protected] void QListView::dragMoveEvent(QDragMoveEvent *e)

再実装:QAbstractItemView::dragMoveEvent(QDragMoveEvent *event)。

[override virtual protected] void QListView::dropEvent(QDropEvent *event)

再実装:QAbstractItemView::dropEvent(QDropEvent *event)。

[override virtual protected] bool QListView::event(QEvent *e)

再実装:QAbstractItemView::event(QEvent *event)。

[override virtual protected] int QListView::horizontalOffset() const

再実装:QAbstractItemView::horizontalOffset() const.

[override virtual] QModelIndex QListView::indexAt(const QPoint &p) const

再実装:QAbstractItemView::indexAt(const QPoint &point) const.

[signal] void QListView::indexesMoved(const QModelIndexList &indexes)

このシグナルは、指定されたindexes がビュー内で移動されたときに発せられる。

[override virtual protected] void QListView::initViewItemOption(QStyleOptionViewItem *option) const

再実装:QAbstractItemView::initViewItemOption(QStyleOptionViewItem *option) const.

[override virtual protected] bool QListView::isIndexHidden(const QModelIndex &index) const

再実装:QAbstractItemView::isIndexHidden(const QModelIndex &index) const.

bool QListView::isRowHidden(int row) const

row が非表示の場合はtrue を返し、そうでない場合はfalse を返す。

[override virtual protected] void QListView::mouseMoveEvent(QMouseEvent *e)

再実装:QAbstractItemView::mouseMoveEvent(QMouseEvent *event)。

[override virtual protected] void QListView::mouseReleaseEvent(QMouseEvent *e)

再実装:QAbstractItemView::mouseReleaseEvent(QMouseEvent *event)。

[override virtual protected] QModelIndex QListView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)

再実装:QAbstractItemView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)を再実装しています。

[override virtual protected] void QListView::paintEvent(QPaintEvent *e)

再実装:QAbstractScrollArea::paintEvent(QPaintEvent *event)。

[protected] QRect QListView::rectForIndex(const QModelIndex &index) const

モデル内の位置index にあるアイテムの矩形を返す。矩形はコンテンツ座標です。

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

[override virtual protected] void QListView::resizeEvent(QResizeEvent *e)

再実装:QAbstractItemView::resizeEvent(QResizeEvent *event)。

[override virtual protected] void QListView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)

再実装:QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end).

[override virtual protected] void QListView::rowsInserted(const QModelIndex &parent, int start, int end)

再実装:QAbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end).

[override virtual protected] void QListView::scrollContentsBy(int dx, int dy)

再実装:QAbstractScrollArea::scrollContentsBy(int dx, int dy).

ビューの内容をdxdy でスクロールします。

[override virtual] void QListView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible)

再実装:QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint).

[override virtual protected] QModelIndexList QListView::selectedIndexes() const

再実装:QAbstractItemView::selectedIndexes() const.

[override virtual protected] void QListView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)

再実装:QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected).

[protected] void QListView::setPositionForIndex(const QPoint &position, const QModelIndex &index)

モデル内のindex にあるアイテムのコンテンツ位置を、指定されたposition に設定する。リストビューの移動モードが Static、またはビューモードがListView の場合、この関数は何の効果も持ちません。

[override virtual] void QListView::setRootIndex(const QModelIndex &index)

再実装:QAbstractItemView::setRootIndex(const QModelIndex &index)。

void QListView::setRowHidden(int row, bool hide)

hide が真なら、与えられたrow は隠され、そうでなければrow が表示される。

isRowHidden()も参照のこと

[override virtual protected] void QListView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command)

再実装:QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags).

[override virtual protected] void QListView::startDrag(Qt::DropActions supportedActions)

再実装:QAbstractItemView::startDrag(Qt::DropActions supportedActions).

[override virtual protected] void QListView::timerEvent(QTimerEvent *e)

再実装:QAbstractItemView::timerEvent(QTimerEvent *event).

[override virtual protected] void QListView::updateGeometries()

再インプリメント:QAbstractItemView::updateGeometries().

[override virtual protected] int QListView::verticalOffset() const

再実装:QAbstractItemView::verticalOffset() const.

[override virtual protected] QSize QListView::viewportSizeHint() const

再実装:QAbstractItemView::viewportSizeHint() const.

[override virtual] QRect QListView::visualRect(const QModelIndex &index) const

再実装:QAbstractItemView::visualRect(const QModelIndex &index) const.

[override virtual protected] QRegion QListView::visualRegionForSelection(const QItemSelection &selection) const

再実装:QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const.

4.7 以降、返される領域はビューポートと交差する(またはビューポートに含まれる)矩形のみを含みます。

[override virtual protected] void QListView::wheelEvent(QWheelEvent *e)

再インプリメント:QAbstractScrollArea::wheelEvent(QWheelEvent *e).

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