QListView Class
QListView クラスは、モデルに基づくリストまたはアイコンビューを提供します。詳細...
| ヘッダー: | #include <QListView> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 継承元: | QAbstractItemView |
| 継承元: |
パブリック型
| 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 ¤t, 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 は、モデルに格納された項目を、単純な非階層リストとして、あるいはアイコンのコレクションとして表示します。このクラスは、以前はQListBox およびQIconView クラスによって提供されていたリストやアイコンビューを、Qtのモデル/ビューアーキテクチャが提供するより柔軟なアプローチを用いて提供するために使用されます。
QListViewクラスはモデル/ビュークラスの一つであり、Qtのモデル/ビューフレームワークの一部です。
このビューは、水平または垂直のヘッダーを表示しません。水平ヘッダー付きの項目リストを表示するには、代わりにQTreeView を使用してください。
QListView は、QAbstractItemView クラスによって定義されたインターフェースを実装しており、QAbstractItemModel クラスを継承したモデルから提供されたデータを表示することができます。
リストビューの項目は、2 つのビューモードのいずれかを使用して表示できます。ListMode では、項目は単純なリストの形式で表示されます。IconMode では、リストビューはアイコンビューの形式となり、ファイルマネージャーのファイルのように、項目がアイコンとともに表示されます。 デフォルトでは、リストビューはListMode です。ビューモードを変更するにはsetViewMode()関数を使用し、現在のビューモードを確認するにはviewMode()を使用します。
これらのビュー内の項目は、リストビューのflow() で指定された方向に配置されます。項目は、ビューのmovement() の状態に応じて、固定されるか、移動可能になります。
モデル内の項目がフローの方向に完全に配置できない場合、ビューウィジェットの境界で改行されることがあります。これはisWrapping()の設定によって異なります。このプロパティは、項目がアイコンビューで表現されている場合に役立ちます。
resizeMode() およびlayoutMode() は、アイテムがどのように、いつ配置されるかを制御します。アイテムはspacing() に基づいて間隔が調整され、gridSize() で指定されたサイズの仮想グリッド内に配置されます。アイテムは、iconSize() に応じて、大きなアイコンまたは小さなアイコンとしてレンダリングされます。
パフォーマンスの向上
大量の項目を表示する際のパフォーマンスを向上させるために、ビューが処理するデータに関するヒントをビューに与えることが可能です。項目を均一なサイズで表示することを目的としたビューでは、uniformItemSizes プロパティをtrueに設定するというアプローチが考えられます。
関連項目: View Classes、QTreeView 、QTableView 、およびQListWidget 。
メンバ型のドキュメント
enum QListView::Flow
| 定数 | 値 | 説明 |
|---|---|---|
QListView::LeftToRight | 0 | アイテムはビュー内で左から右の順に配置されます。 |
QListView::TopToBottom | 1 | 項目は、ビュー内で上から下へと配置されます。 |
enum QListView::LayoutMode
| 定数 | 値 | 説明 |
|---|---|---|
QListView::SinglePass | 0 | アイテムは一度にすべて配置されます。 |
QListView::Batched | 1 | 項目は、batchSize 個ずつバッチ単位で配置されます。 |
「batchSize」も参照してください 。
enum QListView::Movement
| 定数 | 値 | 説明 |
|---|---|---|
QListView::Static | 0 | ユーザーはアイテムを移動できません。 |
QListView::Free | 1 | ユーザーはアイテムを自由に移動できます。 |
QListView::Snap | 2 | アイテムは移動時に指定されたグリッドにスナップされます。setGridSize() を参照してください。 |
enum QListView::ResizeMode
| 定数 | 値 | 説明 |
|---|---|---|
QListView::Fixed | 0 | アイテムの配置は、ビューが初めて表示されたときのみ行われます。 |
QListView::Adjust | 1 | ビューのサイズが変更されるたびに、アイテムのレイアウトが再設定されます。 |
enum QListView::ViewMode
| 定数 | 値 | 説明 |
|---|---|---|
QListView::ListMode | 0 | アイテムは「TopToBottom 」フローで配置され、サイズは「Small」、移動は「Static」に設定されています |
QListView::IconMode | 1 | アイテムは「LeftToRight 」フローを使用して配置され、サイズは「Large」、移動は「Free」です |
プロパティのドキュメント
batchSize : int
layoutMode がBatched に設定されている場合、このプロパティには各バッチに配置される項目の数が格納されます。
デフォルト値は 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
このプロパティは、セル内の各項目の配置を保持します
これは、ListMode において、TopToBottom フローが使用され、かつ折り返しが有効になっている場合にのみサポートされます。デフォルトの配置値は 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) |
関連項目: gridSize 、resizeMode 、およびviewMode 。
resizeMode : ResizeMode
このプロパティは、ビューのサイズ変更時にアイテムが再配置されるかどうかを指定します。
このプロパティがAdjust に設定されている場合、ビューのサイズ変更時にアイテムのレイアウトが再実行されます。値がFixed に設定されている場合、ビューのサイズ変更時にアイテムのレイアウトは再実行されません。
デフォルトでは、このプロパティはFixed に設定されています。
アクセス関数:
| QListView::ResizeMode | resizeMode() const |
| void | setResizeMode(QListView::ResizeMode mode) |
関連項目: movement 、gridSize 、およびviewMode 。
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 の表示モードを保持します。
このプロパティを設定すると、設定されていない他のプロパティが、設定されたビューモードに合わせて変更されます。ただし、clearPropertyFlags() が呼び出されていない限り、すでに設定されているQListView 固有のプロパティは変更されません。
ビューモードを設定すると、選択された移動方法に基づいてドラッグ&ドロップが有効または無効になります。ListMode の場合、デフォルトの移動方法はStatic (ドラッグ&ドロップ無効)です。IconMode の場合、デフォルトの移動方法はFree (ドラッグ&ドロップ有効)です。
アクセス関数:
| QListView::ViewMode | viewMode() const |
| void | setViewMode(QListView::ViewMode mode) |
関連項目: isWrapping 、spacing 、gridSize 、flow 、movement 、およびresizeMode 。
wordWrap : bool
このプロパティは、項目のテキストの改行ルールを指定します
このプロパティが「true 」に設定されている場合、項目テキストは必要に応じて単語区切りで折り返されます。それ以外の場合は、一切折り返されません。このプロパティのデフォルト値は「false 」です。
なお、改行が有効になっている場合でも、テキストを表示するためのスペースを確保するためにセルが拡張されることはありません。表示できないテキストについては、ビューのtextElideMode 設定に従って省略記号(…)が印刷されます。
Access関数:
| 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 ¤t, const QModelIndex &previous)
QAbstractItemView::currentChanged (const QModelIndex ¤t, 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) を再実装します。
dx およびdy によって、ビューの内容をスクロールします。
[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 が true の場合、指定された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) を再実装します。
© 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.