QAbstractItemView Class
QAbstractItemView クラスは、アイテムビュークラスに基本的な機能を提供します。詳細...
| ヘッダー: | #include <QAbstractItemView> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 継承元: | QAbstractScrollArea |
| 継承元: | QColumnView、QHeaderView 、QListView 、QTableView 、およびQTreeView |
パブリック型
| enum | DragDropMode { NoDragDrop, DragOnly, DropOnly, DragDrop, InternalMove } |
| enum | EditTrigger { NoEditTriggers, CurrentChanged, DoubleClicked, SelectedClicked, EditKeyPressed, …, AllEditTriggers } |
| flags | EditTriggers |
| enum | ScrollHint { EnsureVisible, PositionAtTop, PositionAtBottom, PositionAtCenter } |
| enum | ScrollMode { ScrollPerItem, ScrollPerPixel } |
| enum | SelectionBehavior { SelectItems, SelectRows, SelectColumns } |
| enum | SelectionMode { SingleSelection, ContiguousSelection, ExtendedSelection, MultiSelection, NoSelection } |
プロパティ
|
|
パブリック関数
| QAbstractItemView(QWidget *parent = nullptr) | |
| virtual | ~QAbstractItemView() |
| bool | alternatingRowColors() const |
| int | autoScrollMargin() const |
| void | closePersistentEditor(const QModelIndex &index) |
| QModelIndex | currentIndex() const |
| Qt::DropAction | defaultDropAction() const |
| QAbstractItemView::DragDropMode | dragDropMode() const |
| bool | dragDropOverwriteMode() const |
| bool | dragEnabled() const |
| QAbstractItemView::EditTriggers | editTriggers() const |
| bool | hasAutoScroll() const |
| QAbstractItemView::ScrollMode | horizontalScrollMode() const |
| QSize | iconSize() const |
| virtual QModelIndex | indexAt(const QPoint &point) const = 0 |
| QWidget * | indexWidget(const QModelIndex &index) const |
| bool | isPersistentEditorOpen(const QModelIndex &index) const |
| QAbstractItemDelegate * | itemDelegate() const |
| QAbstractItemDelegate * | itemDelegateForColumn(int column) const |
(since 6.0) virtual QAbstractItemDelegate * | itemDelegateForIndex(const QModelIndex &index) const |
| QAbstractItemDelegate * | itemDelegateForRow(int row) const |
| virtual void | keyboardSearch(const QString &search) |
| Qt::MatchFlags | keyboardSearchFlags() const |
| QAbstractItemModel * | model() const |
| void | openPersistentEditor(const QModelIndex &index) |
| void | resetHorizontalScrollMode() |
| void | resetVerticalScrollMode() |
| QModelIndex | rootIndex() const |
| virtual void | scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) = 0 |
| QAbstractItemView::SelectionBehavior | selectionBehavior() const |
| QAbstractItemView::SelectionMode | selectionMode() const |
| QItemSelectionModel * | selectionModel() const |
| void | setAlternatingRowColors(bool enable) |
| void | setAutoScroll(bool enable) |
| void | setAutoScrollMargin(int margin) |
| void | setDefaultDropAction(Qt::DropAction dropAction) |
| void | setDragDropMode(QAbstractItemView::DragDropMode behavior) |
| void | setDragDropOverwriteMode(bool overwrite) |
| void | setDragEnabled(bool enable) |
| void | setDropIndicatorShown(bool enable) |
| void | setEditTriggers(QAbstractItemView::EditTriggers triggers) |
| void | setHorizontalScrollMode(QAbstractItemView::ScrollMode mode) |
| void | setIconSize(const QSize &size) |
| void | setIndexWidget(const QModelIndex &index, QWidget *widget) |
| void | setItemDelegate(QAbstractItemDelegate *delegate) |
| void | setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate) |
| void | setItemDelegateForRow(int row, QAbstractItemDelegate *delegate) |
| void | setKeyboardSearchFlags(Qt::MatchFlags searchFlags) |
| virtual void | setModel(QAbstractItemModel *model) |
| void | setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior) |
| void | setSelectionMode(QAbstractItemView::SelectionMode mode) |
| virtual void | setSelectionModel(QItemSelectionModel *selectionModel) |
| void | setTabKeyNavigation(bool enable) |
| void | setTextElideMode(Qt::TextElideMode mode) |
| void | setUpdateThreshold(int threshold) |
| void | setVerticalScrollMode(QAbstractItemView::ScrollMode mode) |
| bool | showDropIndicator() const |
| virtual int | sizeHintForColumn(int column) const |
| QSize | sizeHintForIndex(const QModelIndex &index) const |
| virtual int | sizeHintForRow(int row) const |
| bool | tabKeyNavigation() const |
| Qt::TextElideMode | textElideMode() const |
| int | updateThreshold() const |
| QAbstractItemView::ScrollMode | verticalScrollMode() const |
| virtual QRect | visualRect(const QModelIndex &index) const = 0 |
再実装されたパブリック関数
| virtual QVariant | inputMethodQuery(Qt::InputMethodQuery query) const override |
パブリックスロット
| void | clearSelection() |
| void | edit(const QModelIndex &index) |
| virtual void | reset() |
| void | scrollToBottom() |
| void | scrollToTop() |
| virtual void | selectAll() |
| void | setCurrentIndex(const QModelIndex &index) |
| virtual void | setRootIndex(const QModelIndex &index) |
| void | update(const QModelIndex &index) |
シグナル
| void | activated(const QModelIndex &index) |
| void | clicked(const QModelIndex &index) |
| void | doubleClicked(const QModelIndex &index) |
| void | entered(const QModelIndex &index) |
| void | iconSizeChanged(const QSize &size) |
| void | pressed(const QModelIndex &index) |
| void | viewportEntered() |
protected 型
| enum | CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight, MoveHome, …, MovePrevious } |
| enum | DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport } |
| enum | State { NoState, DraggingState, DragSelectingState, EditingState, ExpandingState, …, AnimatingState } |
保護された関数
| QPoint | dirtyRegionOffset() const |
| QAbstractItemView::DropIndicatorPosition | dropIndicatorPosition() const |
| virtual bool | edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event) |
| void | executeDelayedItemsLayout() |
| virtual int | horizontalOffset() const = 0 |
(since 6.0) virtual void | initViewItemOption(QStyleOptionViewItem *option) const |
| virtual bool | isIndexHidden(const QModelIndex &index) const = 0 |
| virtual QModelIndex | moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) = 0 |
| void | scheduleDelayedItemsLayout() |
| void | scrollDirtyRegion(int dx, int dy) |
| virtual QModelIndexList | selectedIndexes() const |
| virtual QItemSelectionModel::SelectionFlags | selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const |
| void | setDirtyRegion(const QRegion ®ion) |
| virtual void | setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) = 0 |
| void | setState(QAbstractItemView::State state) |
| virtual void | startDrag(Qt::DropActions supportedActions) |
| QAbstractItemView::State | state() const |
| virtual int | verticalOffset() const = 0 |
| virtual QRegion | visualRegionForSelection(const QItemSelection &selection) const = 0 |
再実装されたプロテクトされた関数
| virtual void | dragEnterEvent(QDragEnterEvent *event) override |
| virtual void | dragLeaveEvent(QDragLeaveEvent *event) override |
| virtual void | dragMoveEvent(QDragMoveEvent *event) override |
| virtual void | dropEvent(QDropEvent *event) override |
| virtual bool | event(QEvent *event) override |
| virtual bool | eventFilter(QObject *object, QEvent *event) override |
| virtual void | focusInEvent(QFocusEvent *event) override |
| virtual bool | focusNextPrevChild(bool next) override |
| virtual void | focusOutEvent(QFocusEvent *event) override |
| virtual void | inputMethodEvent(QInputMethodEvent *event) override |
| virtual void | keyPressEvent(QKeyEvent *event) override |
| virtual void | mouseDoubleClickEvent(QMouseEvent *event) override |
| virtual void | mouseMoveEvent(QMouseEvent *event) override |
| virtual void | mousePressEvent(QMouseEvent *event) override |
| virtual void | mouseReleaseEvent(QMouseEvent *event) override |
| virtual void | resizeEvent(QResizeEvent *event) override |
| virtual void | timerEvent(QTimerEvent *event) override |
| virtual bool | viewportEvent(QEvent *event) override |
| virtual QSize | viewportSizeHint() const override |
保護されたスロット
| virtual void | closeEditor(QWidget*editor, QAbstractItemDelegate::EndEditHinthint) |
| virtual void | commitData(QWidget*editor) |
| 仮想 void | currentChanged(const QModelIndex¤t, const QModelIndex&previous) |
| 仮想 void | dataChanged(const QModelIndex&topLeft, const QModelIndex&bottomRight, const QList<int>&roles= QList<int>()) |
| 仮想 void | editorDestroyed(QObject*editor) |
| 仮想 void | rowsAboutToBeRemoved(const QModelIndex&parent, intstart, intend) |
| virtual void | rowsInserted(const QModelIndex&parent, intstart, intend) |
| 仮想 void | selectionChanged(const QItemSelection&selected, const QItemSelection&deselected) |
| 仮想 void | updateGeometries() |
詳細な説明
QAbstractItemView クラスは、QAbstractItemModel を使用するすべての標準ビューの基底クラスです。QAbstractItemView は抽象クラスであり、それ自体をインスタンス化することはできません。このクラスは、シグナルとスロットのメカニズムを通じてモデルと連携するための標準インターフェースを提供し、サブクラスがモデルの変更に合わせて常に最新の状態を維持できるようにします。 このクラスは、キーボードおよびマウスによるナビゲーション、ビューポートのスクロール、項目の編集、および選択操作に対する標準的なサポートを提供します。キーボードによるナビゲーションでは、以下の機能が実装されています:
| キー | 機能 |
|---|---|
| 矢印キー | 現在のアイテムを変更し、選択します。 |
| Ctrlキー+矢印キー | 現在の項目を切り替えますが、選択はしません。 |
| Shiftキー+矢印キー | 現在の項目を切り替え、その項目を選択します。以前に選択されていた項目は選択解除されません。 |
| Ctrl+スペース | 現在の項目の選択状態を切り替えます。 |
| Tab/Backtab | 現在の項目を次の項目/前の項目に切り替えます。 |
| Home/End | モデル内の最初の項目/最後の項目を選択します。 |
| Page Up/Page Down | ビューに表示されている行数分、表示されている行を上下にスクロールします。 |
| Ctrl+A | モデル内のすべての項目を選択します。 |
なお、上記の表は、selection mode がこれらの操作を許可していることを前提としています。たとえば、選択モードが `QAbstractItemView::NoSelection` の場合、アイテムを選択することはできません。
QAbstractItemView クラスは、Model/View クラスの一つであり、Qtのモデル/ビューフレームワークの一部です。
QAbstractItemView を継承するビュークラスは、項目の描画、項目のジオメトリの返送、項目の検索など、ビュー固有の機能のみを実装すれば十分です。
QAbstractItemView は、edit() やsetCurrentIndex() などの一般的なスロットを提供しています。また、dataChanged()、rowsInserted()、rowsAboutToBeRemoved()、selectionChanged()、currentChanged() など、多くの protected スロットも提供されています。
ルートアイテムはrootIndex() によって返され、現在のアイテムはcurrentIndex() によって返されます。アイテムが表示されていることを確認するには、scrollTo() を使用します。
QAbstractItemViewの関数の中には、setHorizontalScrollMode()やsetVerticalScrollMode()など、スクロールに関連するものがいくつかあります。スクロールバーの範囲を設定するには、例えば、ビューのresizeEvent()関数を再実装することができます:
void MyView::resizeEvent(QResizeEvent *event) {
horizontalScrollBar()->setRange(0, realWidth - width());
...
}なお、この範囲はウィジェットが表示されるまで更新されません。
他にも、選択制御に関連する関数がいくつかあります。例えば、setSelectionMode() やsetSelectionBehavior() などです。このクラスは、デフォルトの選択モデル(selectionModel())を提供していますが、QItemSelectionModel のインスタンスを引数としてsetSelectionModel() を使用することで、これを置き換えることができます。
項目の表示および編集を完全に制御するには、setItemDelegate() を使用してデリゲートを指定できます。
QAbstractItemView には多くの protected 関数が用意されています。その中には、edit() やcommitData() など、編集に関連する関数もあれば、キーボードやマウスのイベントハンドラも含まれています。
「ビュークラス」、「モデル/ビュープログラミング」、および「QAbstractItemModel 」も参照してください 。
メンバ型のドキュメント
enum QAbstractItemView::CursorAction
この列挙型は、項目間を移動するさまざまな方法を定義しており、
| 定数 | 値 | 説明 |
|---|---|---|
QAbstractItemView::MoveUp | 0 | 現在の項目の上の項目に移動します。 |
QAbstractItemView::MoveDown | 1 | 現在の項目の下の項目に移動します。 |
QAbstractItemView::MoveLeft | 2 | 現在の項目の左にある項目に移動します。 |
QAbstractItemView::MoveRight | 3 | 現在の項目の右にある項目に移動します。 |
QAbstractItemView::MoveHome | 4 | 左上の角にある項目に移動します。 |
QAbstractItemView::MoveEnd | 5 | 右下の角にある項目に移動します。 |
QAbstractItemView::MovePageUp | 6 | 現在の項目の 1 ページ上に移動します。 |
QAbstractItemView::MovePageDown | 7 | 現在の項目の 1 ページ下に移動します。 |
QAbstractItemView::MoveNext | 8 | 現在の項目の次の項目に移動します。 |
QAbstractItemView::MovePrevious | 9 | 現在の項目の前の項目に移動します。 |
moveCursor()も参照してください 。
enum QAbstractItemView::DragDropMode
ビューが対応できるさまざまなドラッグ&ドロップイベントについて説明します。デフォルトでは、ビューはドラッグやドロップをサポートしていません(NoDragDrop )。
| 定数 | 値 | 説明 |
|---|---|---|
QAbstractItemView::NoDragDrop | 0 | ドラッグやドロップをサポートしません。 |
QAbstractItemView::DragOnly | 1 | ビューは自身の項目のドラッグをサポートしています |
QAbstractItemView::DropOnly | 2 | ビューはドロップを受け付けます |
QAbstractItemView::DragDrop | 3 | ビューはドラッグとドロップの両方をサポートしています |
QAbstractItemView::InternalMove | 4 | ビューは、自身からの移動(コピーではない)操作のみを受け付けます。 |
使用するモデルがドラッグ&ドロップ操作をサポートしている必要があることに注意してください。
「 setDragDropMode()」および「アイテムビューでのドラッグ&ドロップの使用」も参照してください 。
enum QAbstractItemView::DropIndicatorPosition
この列挙型は、現在のマウス位置にあるインデックスに対するドロップインジケーターの位置を示します:
| 定数 | 値 | 説明 |
|---|---|---|
QAbstractItemView::OnItem | 0 | アイテムはインデックスの上にドロップされます。 |
QAbstractItemView::AboveItem | 1 | アイテムはインデックスの上にドロップされます。 |
QAbstractItemView::BelowItem | 2 | アイテムはインデックスの下にドロップされます。 |
QAbstractItemView::OnViewport | 3 | アイテムは、アイテムが存在しないビューポートの領域にドロップされます。各ビューがビューポートにドロップされたアイテムをどのように処理するかは、使用されている基盤となるモデルの動作によって異なります。 |
enum QAbstractItemView::EditTrigger
flags QAbstractItemView::EditTriggers
この列挙型は、アイテムの編集を開始するアクションを表します。
| 定数 | 値 | 説明 |
|---|---|---|
QAbstractItemView::NoEditTriggers | 0 | 編集できません。 |
QAbstractItemView::CurrentChanged | 1 | 現在の項目が変更されるたびに編集が開始されます。 |
QAbstractItemView::DoubleClicked | 2 | 項目をダブルクリックすると編集が開始されます。 |
QAbstractItemView::SelectedClicked | 4 | すでに選択されている項目をクリックすると編集が開始されます。 |
QAbstractItemView::EditKeyPressed | 8 | アイテム上でプラットフォーム編集キーが押されると編集が開始されます。 |
QAbstractItemView::AnyKeyPressed | 16 | アイテム上で任意のキーが押されると編集が開始されます。 |
QAbstractItemView::AllEditTriggers | 31 | 上記のすべてのアクションで編集が開始されます。 |
EditTriggers 型は、QFlags<EditTrigger> の typedef です。これは、EditTrigger 値の論理和(OR)の組み合わせを格納します。
enum QAbstractItemView::ScrollHint
| 定数 | 値 | 説明 |
|---|---|---|
QAbstractItemView::EnsureVisible | 0 | アイテムが確実に表示されるようにスクロールします。 |
QAbstractItemView::PositionAtTop | 1 | スクロールして、アイテムをビューポートの最上部に配置します。 |
QAbstractItemView::PositionAtBottom | 2 | スクロールして、アイテムをビューポートの下部に配置します。 |
QAbstractItemView::PositionAtCenter | 3 | スクロールして、アイテムをビューポートの中央に配置します。 |
enum QAbstractItemView::ScrollMode
スクロールバーの動作を指定します。スクロールモードを ScrollPerPixel に設定した場合、setSingleStep() を使用して明示的に設定されていない限り、1 ステップのサイズが自動的に調整されます。1 ステップのサイズを -1 に設定することで、自動調整を元に戻すことができます。
| 定数 | 値 | 説明 |
|---|---|---|
QAbstractItemView::ScrollPerItem | 0 | ビューは、コンテンツを1項目ずつスクロールします。 |
QAbstractItemView::ScrollPerPixel | 1 | ビューは、コンテンツを 1 ピクセルずつスクロールします。 |
enum QAbstractItemView::SelectionBehavior
| 定数 | 値 | 説明 |
|---|---|---|
QAbstractItemView::SelectItems | 0 | 単一の項目を選択します。 |
QAbstractItemView::SelectRows | 1 | 行のみを選択します。 |
QAbstractItemView::SelectColumns | 2 | 列のみを選択します。 |
enum QAbstractItemView::SelectionMode
この列挙型は、ビューがユーザーの選択に対してどのように反応するかを示します:
| 定数 | 値 | 説明 |
|---|---|---|
QAbstractItemView::SingleSelection | 1 | ユーザーが項目を選択すると、すでに選択されていた項目はすべて選択解除されます。ユーザーは、選択済みの項目をクリックする際に Ctrl キーを押すことで、その項目の選択を解除することができます。 |
QAbstractItemView::ContiguousSelection | 4 | ユーザーが通常の方法で項目を選択すると、選択状態が解除され、新しい項目が選択されます。ただし、ユーザーがShiftキーを押しながら項目をクリックした場合、現在の項目とクリックした項目の間のすべての項目が、クリックした項目の状態に応じて選択されるか、または選択解除されます。 |
QAbstractItemView::ExtendedSelection | 3 | ユーザーが通常の方法で項目を選択すると、選択状態が解除され、新しい項目が選択されます。ただし、ユーザーが項目をクリックする際にCtrlキーを押している場合、クリックした項目の状態が切り替わり、その他の項目は変更されません。 ユーザーがShiftキーを押しながら項目をクリックすると、現在の項目とクリックされた項目の間のすべての項目が、クリックされた項目の状態に応じて選択または選択解除されます。マウスをドラッグして複数の項目を選択することもできます。 |
QAbstractItemView::MultiSelection | 2 | ユーザーが通常の方法で項目を選択すると、その項目の選択状態が切り替わり、他の項目は変更されません。マウスをドラッグして複数の項目を選択範囲内に含めることで、それらの項目の選択状態を切り替えることができます。 |
QAbstractItemView::NoSelection | 0 | 項目は選択できません。 |
最も一般的に使用されるモードは、SingleSelection および ExtendedSelection です。
enum QAbstractItemView::State
ビューが取り得るさまざまな状態について説明します。通常、これは独自のビューを再実装する場合にのみ参考になります。
| 定数 | 値 | 説明 |
|---|---|---|
QAbstractItemView::NoState | 0 | これがデフォルトの状態です。 |
QAbstractItemView::DraggingState | 1 | ユーザーがアイテムをドラッグしています。 |
QAbstractItemView::DragSelectingState | 2 | ユーザーが項目を選択しています。 |
QAbstractItemView::EditingState | 3 | ユーザーがウィジェットエディタで項目を編集しています。 |
QAbstractItemView::ExpandingState | 4 | ユーザーが項目のブランチを開いています。 |
QAbstractItemView::CollapsingState | 5 | ユーザーが項目のブランチを閉じている。 |
QAbstractItemView::AnimatingState | 6 | アイテムビューでアニメーションが実行されています。 |
プロパティのドキュメント
alternatingRowColors : bool
このプロパティは、背景を交互の色で描画するかどうかを指定します
このプロパティがtrue に設定されている場合、項目の背景はQPalette::Base およびQPalette::AlternateBase を使用して描画されます。それ以外の場合は、QPalette::Base の色を使用して背景が描画されます。
デフォルトでは、このプロパティは `false` です。
アクセス関数:
| bool | alternatingRowColors() const |
| void | setAlternatingRowColors(bool enable) |
autoScroll : bool
このプロパティは、ドラッグ移動イベント時の自動スクロールが有効かどうかを表します
このプロパティが true(デフォルト)に設定されている場合、ユーザーがビューポートの端から 16 ピクセル以内の範囲をドラッグすると、QAbstractItemView はビューの内容を自動的にスクロールします。現在のアイテムが変更された場合、そのアイテムが完全に表示されるように、ビューは自動的にスクロールします。
このプロパティは、ビューポートがドロップを受け入れる場合にのみ機能します。このプロパティを false に設定すると、自動スクロールは無効になります。
アクセス関数:
| bool | hasAutoScroll() const |
| void | setAutoScroll(bool enable) |
autoScrollMargin : int
このプロパティは、自動スクロールがトリガーされる領域のサイズを保持します
このプロパティは、ビューポートの端にある、自動スクロールをトリガーする領域のサイズを制御します。デフォルト値は 16 ピクセルです。
アクセス関数:
| int | autoScrollMargin() const |
| void | setAutoScrollMargin(int margin) |
defaultDropAction : Qt::DropAction
このプロパティは、QAbstractItemView::drag() でデフォルトで使用されるドロップアクションを保持します。
このプロパティが設定されていない場合、サポートされているアクションに CopyAction が含まれているときは、ドロップアクションは CopyAction になります。
アクセス関数:
| Qt::DropAction | defaultDropAction() const |
| void | setDefaultDropAction(Qt::DropAction dropAction) |
関連項目: showDropIndicator およびdragDropOverwriteMode 。
dragDropMode : DragDropMode
このプロパティには、ビューが反応するドラッグ&ドロップイベントが格納されます
アクセス関数:
| QAbstractItemView::DragDropMode | dragDropMode() const |
| void | setDragDropMode(QAbstractItemView::DragDropMode behavior) |
関連項目: showDropIndicator およびdragDropOverwriteMode 。
dragDropOverwriteMode : bool
このプロパティは、ビューのドラッグ&ドロップの動作を指定します。
値が `true` の場合、選択したデータをドロップすると既存のアイテムデータが上書きされ、データを移動するとアイテムがクリアされます。値が `false` の場合、選択したデータをドロップすると新しいアイテムとして挿入されます。データを移動すると、アイテムも削除されます。
デフォルト値はfalse であり、これはQListView およびQTreeView のサブクラスと同様です。一方、QTableView サブクラスでは、このプロパティはtrue に設定されています。
注:これは項目の上書きを防ぐことを意図したものではありません。モデルの flags() の実装において、Qt::ItemIsDropEnabled を返さないようにすることで、上書きを防ぐ必要があります。
アクセス関数:
| bool | dragDropOverwriteMode() const |
| void | setDragDropOverwriteMode(bool overwrite) |
dragDropModeも参照してください 。
dragEnabled : bool
このプロパティは、ビューが自身の項目のドラッグをサポートしているかどうかを示します
アクセス関数:
| bool | dragEnabled() const |
| void | setDragEnabled(bool enable) |
関連項目: showDropIndicator 、DragDropMode 、dragDropOverwriteMode 、およびacceptDrops 。
editTriggers : EditTriggers
このプロパティは、どのアクションが項目の編集を開始するかを指定します
このプロパティは、EditTrigger で定義されたフラグの組み合わせであり、OR演算子を用いて結合されています。実行されたアクションがこのプロパティに設定されている場合のみ、ビューは項目の編集を開始します。
デフォルト値は次のとおりです:
- QTableView の場合:DoubleClicked|AnyKeyPressed
- その他のすべてのビューの場合:DoubleClicked|EditKeyPressed
アクセス関数:
| QAbstractItemView::EditTriggers | editTriggers() const |
| void | setEditTriggers(QAbstractItemView::EditTriggers triggers) |
horizontalScrollMode : ScrollMode
ビューがコンテンツを水平方向にスクロールする方法
このプロパティは、ビューがコンテンツを水平方向にスクロールする方法を制御します。スクロールは、ピクセル単位または項目単位で行うことができます。デフォルト値は、QStyle::SH_ItemView_ScrollMode というスタイルヒントを通じてスタイルから取得されます。
アクセス関数:
| QAbstractItemView::ScrollMode | horizontalScrollMode() const |
| void | setHorizontalScrollMode(QAbstractItemView::ScrollMode mode) |
| void | resetHorizontalScrollMode() |
iconSize : QSize
このプロパティは、項目のアイコンのサイズを保持します
ビューが表示されている状態でこのプロパティを設定すると、項目のレイアウトが再計算されます。
アクセス関数:
| QSize | iconSize() const |
| void | setIconSize(const QSize &size) |
Notifierシグナル:
| void | iconSizeChanged(const QSize &size) |
[since 6.11] keyboardSearchFlags : Qt::MatchFlags
このプロパティは、keyboardSearch() のデフォルトの実装が、指定された文字列をモデルのデータとどのように照合するかを決定します。
デフォルト値はQt::MatchStartsWith|Qt::MatchWrap です。
この列挙型は Qt 6.11 で導入されました。
アクセス関数:
| Qt::MatchFlags | keyboardSearchFlags() const |
| void | setKeyboardSearchFlags(Qt::MatchFlags searchFlags) |
関連項目: keyboardSearch() およびQAbstractItemModel::match()。
selectionBehavior : SelectionBehavior
このプロパティは、ビューが使用する選択動作を指定します
このプロパティは、選択が単一の項目、行、または列単位で行われるかを指定します。
アクセス関数:
| QAbstractItemView::SelectionBehavior | selectionBehavior() const |
| void | setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior) |
関連項目: SelectionMode およびSelectionBehavior 。
selectionMode : SelectionMode
このプロパティは、ビューがどの選択モードで動作するかを指定します
このプロパティは、ユーザーが1つまたは複数の項目を選択できるかどうか、および複数の項目を選択する場合に、その選択範囲が連続した項目でなければならないかどうかを制御します。
アクセス関数:
| QAbstractItemView::SelectionMode | selectionMode() const |
| void | setSelectionMode(QAbstractItemView::SelectionMode mode) |
関連項目: SelectionMode およびSelectionBehavior 。
showDropIndicator : bool
このプロパティは、アイテムをドラッグしてドロップする際にドロップインジケーターを表示するかどうかを指定します。
アクセス関数:
| bool | showDropIndicator() const |
| void | setDropIndicatorShown(bool enable) |
関連項目: dragEnabled 、DragDropMode 、dragDropOverwriteMode 、およびacceptDrops 。
tabKeyNavigation : bool
このプロパティは、TabキーおよびBackTabキーによる項目ナビゲーションが有効かどうかを示します。
アクセス関数:
| bool | tabKeyNavigation() const |
| void | setTabKeyNavigation(bool enable) |
textElideMode : Qt::TextElideMode
このプロパティは、省略されたテキスト内の「...」の位置を保持します。
すべてのアイテムビューのデフォルト値は、Qt::ElideRight です。
アクセス関数:
| Qt::TextElideMode | textElideMode() const |
| void | setTextElideMode(Qt::TextElideMode mode) |
[since 6.9] updateThreshold : int
このプロパティは、dataChanged() 内でビューの完全更新を直接トリガーするための、変更されたインデックスの数を保持しています。
dataChanged() 内のアルゴリズムは、変更されたインデックスが可視であるかどうかを計算することで、ビューの完全更新を最小限に抑えようとします。 変更点が多く、かつその変更規模も大きい非常に大規模なモデルの場合、このチェック処理に実際の更新処理よりも長い時間がかかる可能性があり、かえって非効率的になることがあります。このプロパティを使用すると、変更されたインデックスの数が指定された値を超えた場合に、チェックをスキップして直接完全更新をトリガーするようアルゴリズムを制御できます。
デフォルト値は 200 です。
この列挙型は Qt 6.9 で導入されました。
アクセス関数:
| int | updateThreshold() const |
| void | setUpdateThreshold(int threshold) |
関連項目: ` dataChanged()`。
verticalScrollMode : ScrollMode
ビューがコンテンツを垂直方向にスクロールする方法
このプロパティは、ビューがコンテンツを垂直方向にスクロールする方法を制御します。スクロールは、ピクセル単位または項目単位で行うことができます。デフォルト値は、QStyle::SH_ItemView_ScrollMode スタイルヒントを介してスタイルから取得されます。
アクセス関数:
| QAbstractItemView::ScrollMode | verticalScrollMode() const |
| void | setVerticalScrollMode(QAbstractItemView::ScrollMode mode) |
| void | resetVerticalScrollMode() |
メンバ関数のドキュメント
[explicit] QAbstractItemView::QAbstractItemView(QWidget *parent = nullptr)
指定されたparent を使用して、抽象アイテムビューを構築します。
[virtual noexcept] QAbstractItemView::~QAbstractItemView()
景観を台無しにする。
[signal] void QAbstractItemView::activated(const QModelIndex &index)
このシグナルは、index で指定された項目がユーザーによってアクティブ化されたときに発火します。項目のアクティブ化方法はプラットフォームによって異なります。例えば、項目をシングルクリックまたはダブルクリックしたり、項目がフォーカスされている状態で Return キーや Enter キーを押したりすることなどです。
関連項目: clicked()、doubleClicked()、entered()、およびpressed()。
[slot] void QAbstractItemView::clearSelection()
選択されているすべての項目の選択を解除します。現在のインデックスは変更されません。
setSelection() およびselectAll()も参照してください 。
[signal] void QAbstractItemView::clicked(const QModelIndex &index)
このシグナルは、マウスボタンの左クリックが行われたときに発火します。マウスがクリックされた項目は、index で指定されます。このシグナルは、インデックスが有効な場合にのみ発火します。
activated()、doubleClicked()、entered()、およびpressed()も参照してください 。
[virtual protected slot] void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint)
指定されたeditor を閉じ、解放します。hint は、編集操作の終了時にビューがどのように反応すべきかを指定するために使用されます。たとえば、このヒントによって、ビュー内の次の項目を編集用に開くように指示することができます。
edit() およびcommitData()も参照してください 。
void QAbstractItemView::closePersistentEditor(const QModelIndex &index)
指定されたindex にある項目の永続エディタを閉じます。
openPersistentEditor() およびisPersistentEditorOpen()も参照してください 。
[virtual protected slot] void QAbstractItemView::commitData(QWidget *editor)
editor 内のデータをモデルにコミットします。
「closeEditor()」も参照してください 。
[virtual protected slot] void QAbstractItemView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
このスロットは、新しいアイテムが現在のアイテムになったときに呼び出されます。以前の現在のアイテムは `previous ` インデックスで指定され、新しいアイテムは `current ` インデックスで指定されます。
アイテムの変更について知りたい場合は、dataChanged() シグナルを参照してください。
QModelIndex QAbstractItemView::currentIndex() const
現在の項目のモデルインデックスを返します。
setCurrentIndex()も参照してください 。
[virtual protected slot] void QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>())
このスロットは、モデル内で指定されたroles を持つ項目が変更された際に呼び出されます。変更された項目は、topLeft からbottomRight までの範囲に含まれるものです。項目が1つだけ変更された場合は、topLeft ==bottomRight となります。
変更されたroles は、空のコンテナ(すべてが変更されたことを意味する)であるか、変更されたロールのサブセットを含む非空のコンテナのいずれかになります。
注: Qt XMLが提供するビューでは、 dataChanged() メソッドはQt::ToolTipRole を考慮しません。
[protected] QPoint QAbstractItemView::dirtyRegionOffset() const
ビュー内の変更済み領域のオフセットを返します。
scrollDirtyRegion() を使用し、QAbstractItemView のサブクラスでpaintEvent() を実装する場合は、ペイントイベントで指定された領域を、この関数から返されるオフセットで変換する必要があります。
scrollDirtyRegion() およびsetDirtyRegion()も参照してください 。
[signal] void QAbstractItemView::doubleClicked(const QModelIndex &index)
このシグナルは、マウスボタンがダブルクリックされたときに発せられます。マウスがダブルクリックされた項目は、index で指定されます。このシグナルは、インデックスが有効な場合にのみ発せられます。
clicked() およびactivated()も参照してください 。
[override virtual protected] void QAbstractItemView::dragEnterEvent(QDragEnterEvent *event)
QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event) を再実装します。
この関数は、ドラッグ&ドロップ操作がウィジェットに入ってきた際に、指定されたevent を引数として呼び出されます。ドラッグが有効なドロップ先(例:ドロップを受け入れるアイテムの上)にある場合、イベントは受け入れられます。そうでない場合は無視されます。
dropEvent() およびstartDrag()も参照してください 。
[override virtual protected] void QAbstractItemView::dragLeaveEvent(QDragLeaveEvent *event)
QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event) を再実装します。
この関数は、ドラッグ中のアイテムがビューから離れたときに呼び出されます。event は、ドラッグ&ドロップ操作の状態を表します。
[override virtual protected] void QAbstractItemView::dragMoveEvent(QDragMoveEvent *event)
QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event) を再実装します。
この関数は、ウィジェット上でドラッグ&ドロップ操作が行われている間、指定されたevent を引数として継続的に呼び出されます。たとえば、ユーザーが選択範囲をビューの右端または下端までドラッグした場合など、ビューのスクロールを引き起こす可能性があります。この場合、イベントは受理されますが、それ以外の場合は無視されます。
dropEvent() およびstartDrag()も参照してください 。
[override virtual protected] void QAbstractItemView::dropEvent(QDropEvent *event)
QAbstractScrollArea::dropEvent(QDropEvent *event) を再実装します。
ウィジェット上でドロップイベントが発生すると、指定された `event ` を引数としてこの関数が呼び出されます。モデルがイベントの位置を受け入れる場合、ドロップイベントは受け入れられます。そうでない場合は無視されます。
startDrag()も参照してください 。
[protected] QAbstractItemView::DropIndicatorPosition QAbstractItemView::dropIndicatorPosition() const
最も近いアイテムに対するドロップインジケーターの位置を返します。
[slot] void QAbstractItemView::edit(const QModelIndex &index)
指定されたindex に対応する項目が編集可能な場合、その項目の編集を開始します。
なお、この関数は現在のインデックスを変更しません。現在のインデックスによって編集対象の次の項目と前の項目が定義されるため、ユーザーはキーボードによるナビゲーションが期待通りに動作しないと感じる可能性があります。一貫したナビゲーション動作を実現するには、この関数の呼び出し前に、同じモデルインデックスを指定してsetCurrentIndex()を呼び出してください。
注:この スロットは オーバーロードされています。このスロットに接続するには:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
abstractItemView, qOverload(&QAbstractItemView::edit));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
abstractItemView, [receiver = abstractItemView](const QModelIndex &index) { receiver->edit(index); }); QModelIndex::flags()も参照してください 。
[virtual protected] bool QAbstractItemView::edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event)
index にある項目の編集を開始し、必要に応じてエディタを作成します。ビューのState がEditingState になった場合はtrue を返し、そうでない場合はfalse を返します。
編集処理を引き起こしたアクションは `trigger` で記述され、関連するイベントは `event` で指定されます。
trigger をQAbstractItemView::AllEditTriggers に指定することで、編集を強制的に実行できます。
closeEditor()も参照してください 。
[virtual protected slot] void QAbstractItemView::editorDestroyed(QObject *editor)
この関数は、指定されたeditor が破棄されたときに呼び出されます。
closeEditor()も参照してください 。
[signal] void QAbstractItemView::entered(const QModelIndex &index)
このシグナルは、マウスカーソルが `index` で指定された項目に入ったときに発火します。この機能が動作するには、マウス追跡が有効になっている必要があります。
関連項目: viewportEntered()、activated()、clicked()、doubleClicked()、pressed()も参照してください 。
[override virtual protected] bool QAbstractItemView::event(QEvent *event)
QAbstractScrollArea::event(QEvent *event) を再実装します。
[override virtual protected] bool QAbstractItemView::eventFilter(QObject *object, QEvent *event)
QObject::eventFilter(QObject *watched, QEvent *event) を再実装します。
[protected] void QAbstractItemView::executeDelayedItemsLayout()
イベント処理が開始されるのを待たずに、スケジュールされたレイアウトを実行します。
scheduleDelayedItemsLayout()も参照してください 。
[override virtual protected] void QAbstractItemView::focusInEvent(QFocusEvent *event)
QWidget::focusInEvent(QFocusEvent *event) を再実装します。
この関数は、ウィジェットがフォーカスを取得した際に、指定されたevent を引数として呼び出されます。デフォルトでは、このイベントは無視されます。
setFocus() およびfocusOutEvent()も参照してください 。
[override virtual protected] bool QAbstractItemView::focusNextPrevChild(bool next)
QWidget::focusNextPrevChild (bool next)を再実装します。
[override virtual protected] void QAbstractItemView::focusOutEvent(QFocusEvent *event)
QWidget::focusOutEvent(QFocusEvent *event) を再実装します。
この関数は、ウィジェットがフォーカスを失った際に、指定されたevent を引数として呼び出されます。デフォルトでは、このイベントは無視されます。
clearFocus() およびfocusInEvent()も参照してください 。
[pure virtual protected] int QAbstractItemView::horizontalOffset() const
ビューの水平方向のオフセットを返します。
基底クラスでは、これは純粋仮想関数です。
verticalOffset()も参照してください 。
[pure virtual] QModelIndex QAbstractItemView::indexAt(const QPoint &point) const
ビューポート座標point にあるアイテムのモデルインデックスを返します。
基底クラスでは、これは純粋仮想関数です。
visualRect()も参照してください 。
QWidget *QAbstractItemView::indexWidget(const QModelIndex &index) const
指定されたindex にある項目のウィジェットを返します。
setIndexWidget()も参照してください 。
[virtual protected, since 6.0] void QAbstractItemView::initViewItemOption(QStyleOptionViewItem *option) const
option 構造体を、ビューのパレット、フォント、状態、配置設定などで初期化します。
注: このメソッドの実装では 、受け取った構造体のversion を確認し、実装で認識されているすべてのメンバに値を代入し、戻り値のバージョンメンバを実装でサポートされている値に設定してから戻す必要があります。
この関数は Qt 6.0 で導入されました。
[override virtual protected] void QAbstractItemView::inputMethodEvent(QInputMethodEvent *event)
QWidget::inputMethodEvent(QInputMethodEvent *event) を再実装します。
[override virtual] QVariant QAbstractItemView::inputMethodQuery(Qt::InputMethodQuery query) const
QWidget::inputMethodQuery (Qt::InputMethodQuery query)const を再実装します。
[pure virtual protected] bool QAbstractItemView::isIndexHidden(const QModelIndex &index) const
指定されたindex が指す項目がビュー内で非表示になっている場合はtrue を返し、そうでない場合はfalse を返します。
非表示設定はビュー固有の機能です。たとえば、TableView では列を非表示に設定でき、TreeView では行を非表示に設定できます。
基底クラスでは、これは純粋仮想関数です。
bool QAbstractItemView::isPersistentEditorOpen(const QModelIndex &index) const
インデックスindex の項目に対して、永続エディタが開かれているかどうかを返します。
openPersistentEditor() およびclosePersistentEditor()も参照してください 。
QAbstractItemDelegate *QAbstractItemView::itemDelegate() const
このビューおよびモデルで使用されるアイテムデリゲートを返します。これは、setItemDelegate() で設定されたもの、またはデフォルトのデリゲートのいずれかです。
setItemDelegate()も参照してください 。
QAbstractItemDelegate *QAbstractItemView::itemDelegateForColumn(int column) const
指定されたcolumn に対して、このビューおよびモデルで使用されているアイテムデリゲートを返します。itemDelegate() を呼び出すことで、指定されたインデックスに対する現在のデリゲートへのポインタを取得できます。
setItemDelegateForColumn()、itemDelegateForRow()、およびitemDelegate()も参照してください 。
[virtual, since 6.0] QAbstractItemDelegate *QAbstractItemView::itemDelegateForIndex(const QModelIndex &index) const
指定されたindex に対して、このビューおよびモデルで使用されているアイテムデリゲートを返します。
この関数は Qt 6.0 で導入されました。
setItemDelegate()、setItemDelegateForRow()、およびsetItemDelegateForColumn()も参照してください 。
QAbstractItemDelegate *QAbstractItemView::itemDelegateForRow(int row) const
指定されたrow に対して、このビューおよびモデルで使用されているアイテムデリゲートを返します。デリゲートが割り当てられていない場合は、nullptr を返します。itemDelegate()を呼び出すことで、指定されたインデックスに対する現在のデリゲートへのポインタを取得できます。
setItemDelegateForRow()、itemDelegateForColumn()、およびsetItemDelegate()も参照してください 。
[override virtual protected] void QAbstractItemView::keyPressEvent(QKeyEvent *event)
QAbstractScrollArea::keyPressEvent(QKeyEvent *e) を再実装します。
この関数は、ウィジェットにキーイベントが送信された際に、指定されたevent を引数として呼び出されます。 デフォルトの実装では、上、下、左、右、Home、PageUp、PageDown などの基本的なカーソル移動を処理します。現在のインデックスが有効で、アクティベーションキー(プラットフォームに応じて Enter または Return など)が押された場合、activated() シグナルが発信されます。 この関数では、F2キーが押された場合など、キーの押下によって編集が開始されます。
edit()、moveCursor()、keyboardSearch()、およびtabKeyNavigationも参照してください 。
[virtual] void QAbstractItemView::keyboardSearch(const QString &search)
文字列「search 」に最も一致する項目に移動して選択します。該当する項目が見つからない場合は、何も起こりません。
デフォルトの実装では、search が空の場合、または前回の検索からの経過時間がQApplication::keyboardInputInterval()を超えた場合、検索はリセットされます。
QAbstractItemModel *QAbstractItemView::model() const
このビューが表示しているモデルを返します。
setModel()も参照してください 。
[override virtual protected] void QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event)
QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e) を再実装します。
この関数は、ウィジェット内でマウスボタンがダブルクリックされた際に、指定されたevent を引数として呼び出されます。ダブルクリックが有効なアイテム上で行われた場合、doubleClicked()シグナルを発火し、そのアイテムに対してedit()を呼び出します。
[override virtual protected] void QAbstractItemView::mouseMoveEvent(QMouseEvent *event)
QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e) を再実装します。
この関数は、ウィジェットにマウス移動イベントが送信された際に、指定されたevent を引数として呼び出されます。選択操作が進行中で、新しい項目が選択範囲上を移動した場合、選択範囲が拡張されます。ドラッグ操作が進行中の場合は、その操作が継続されます。
[override virtual protected] void QAbstractItemView::mousePressEvent(QMouseEvent *event)
QAbstractScrollArea::mousePressEvent(QMouseEvent *e) を再実装します。
この関数は、カーソルがウィジェット内にある状態でマウスボタンが押されたときに、指定されたevent を引数として呼び出されます。有効な項目が押された場合、その項目が現在の項目として設定されます。この関数は、pressed()シグナルを発行します。
[override virtual protected] void QAbstractItemView::mouseReleaseEvent(QMouseEvent *event)
QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e) を再実装します。
この関数は、ウィジェットでマウスクリックイベントが発生した後、マウスボタンが離された際に、指定されたevent を引数として呼び出されます。ユーザーがウィジェット内でマウスをクリックし、マウスボタンを離す前に別の位置までマウスをドラッグした場合、ウィジェットはリリースイベントを受け取ります。アイテムが押されていた場合、この関数はclicked()シグナルを発行します。
[pure virtual protected] QModelIndex QAbstractItemView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
指定されたcursorAction およびmodifiers で指定されたキーボード修飾子に基づいて、ビュー内の次のオブジェクトを指すQModelIndex オブジェクトを返します。
基底クラスでは、これは純粋仮想関数です。
void QAbstractItemView::openPersistentEditor(const QModelIndex &index)
指定されたindex にある項目に対して、永続的なエディタを開きます。エディタが存在しない場合、デリゲートは新しいエディタを作成します。
closePersistentEditor() およびisPersistentEditorOpen()も参照してください 。
[signal] void QAbstractItemView::pressed(const QModelIndex &index)
このシグナルは、マウスボタンが押されたときに発火します。マウスが押された項目は、index で指定されます。このシグナルは、インデックスが有効な場合にのみ発火します。
マウスボタンの状態を取得するには、QGuiApplication::mouseButtons() 関数を使用します。
activated()、clicked()、doubleClicked()、およびentered()も参照してください 。
[virtual slot] void QAbstractItemView::reset()
ビューの内部状態をリセットします。
警告:この関数は 、開いているエディタ、スクロールバーの位置、選択範囲などをリセットします。既存の変更は反映されません。ビューをリセットする際に変更を保存したい場合は、この関数を再実装し、変更を反映させた上で、スーパークラスの実装を呼び出してください。
[override virtual protected] void QAbstractItemView::resizeEvent(QResizeEvent *event)
QAbstractScrollArea::resizeEvent(QResizeEvent *event) を再実装します。
ウィジェットにリサイズイベントが送信されると、指定されたevent を引数としてこの関数が呼び出されます。
QWidget::resizeEvent()も参照してください 。
QModelIndex QAbstractItemView::rootIndex() const
モデルのルート項目のモデルインデックスを返します。ルート項目とは、ビューの最上位項目の親項目です。ルートが無効な場合もあります。
setRootIndex()も参照してください 。
[virtual protected slot] void QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
このスロットは、行が削除されようとしているときに呼び出されます。削除される行は、指定されたparent の下にある、start からend までの行(両端を含む)です。
rowsInserted()も参照してください 。
[virtual protected slot] void QAbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end)
このスロットは、行が挿入されたときに呼び出されます。新しい行は、指定されたparent の範囲内(start からend までを含む)の行です。基底クラスの実装では、モデルに対してfetchMore()を呼び出し、さらにデータがあるかどうかを確認します。
rowsAboutToBeRemoved()も参照してください 。
[protected] void QAbstractItemView::scheduleDelayedItemsLayout()
イベント処理が開始されたときに実行される、ビュー内の項目のレイアウトをスケジュールします。
イベントが処理される前に scheduleDelayedItemsLayout() が複数回呼び出された場合でも、ビューのレイアウトは 1 回のみ実行されます。
executeDelayedItemsLayout()も参照してください 。
[protected] void QAbstractItemView::scrollDirtyRegion(int dx, int dy)
(dx 、dy )ピクセル分スクロールできるよう、変更された領域を反対方向に移動させてビューを準備します。この関数を呼び出す必要があるのは、ビューのサブクラスでスクロール可能なビューポートを実装している場合のみです。
QAbstractItemView のサブクラスでscrollContentsBy() を実装する場合は、ビューポートに対してQWidget::scroll() を呼び出す前に、この関数を呼び出してください。あるいは、単にupdate() を呼び出すだけでも構いません。
scrollContentsBy()、dirtyRegionOffset()、およびsetDirtyRegion()も参照してください 。
[pure virtual] void QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible)
必要に応じてビューをスクロールし、index にある項目が表示されるようにします。ビューは、指定されたhint に従って、その項目の位置を調整しようとします。
基底クラスでは、これは純粋仮想関数です。
[slot] void QAbstractItemView::scrollToBottom()
ビューを一番下までスクロールします。
scrollTo() およびscrollToTop()も参照してください 。
[slot] void QAbstractItemView::scrollToTop()
ビューを先頭までスクロールします。
scrollTo() およびscrollToBottom()も参照してください 。
[virtual slot] void QAbstractItemView::selectAll()
ビュー内のすべての項目を選択します。この関数は、選択時にビューに設定されている選択動作を使用します。
setSelection()、selectedIndexes()、およびclearSelection()も参照してください 。
[virtual protected] QModelIndexList QAbstractItemView::selectedIndexes() const
この便利関数は、ビュー内で選択されており、かつ非表示になっていないすべての項目のインデックスをリストとして返します。このリストには重複は含まれず、ソートもされていません。
QItemSelectionModel::selectedIndexes()も参照してください 。
[virtual protected slot] void QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
このスロットは、選択内容が変更されたときに呼び出されます。以前の選択内容(空の場合もあります)は `deselected` で指定され、新しい選択内容は `selected` で指定されます。
setSelection()も参照してください 。
[virtual protected] QItemSelectionModel::SelectionFlags QAbstractItemView::selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const
指定されたindex の選択モデルを更新する際に使用されるSelectionFlagsを返します。結果は、現在のselectionMode()およびユーザー入力イベントevent (nullptr となる場合があります)に依存します。
独自の選択動作を定義するには、この関数を再実装してください。
setSelection()も参照してください 。
QItemSelectionModel *QAbstractItemView::selectionModel() const
現在の選択モデルを返します。
setSelectionModel() およびselectedIndexes()も参照してください 。
[slot] void QAbstractItemView::setCurrentIndex(const QModelIndex &index)
現在の項目を、index にある項目に設定します。
現在の選択モードがNoSelection でない限り、その項目も選択されます。なお、この関数は、ユーザーがその後行う新しい選択の開始位置も更新することに注意してください。
アイテムを選択せずに現在のアイテムとして設定するには、
selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate);
currentIndex()、currentChanged()、およびselectionModeも参照してください 。
[protected] void QAbstractItemView::setDirtyRegion(const QRegion ®ion)
指定されたregion を「変更済み」としてマークし、更新が実行されるようスケジュールします。この関数を呼び出す必要があるのは、独自のビューサブクラスを実装している場合のみです。
scrollDirtyRegion() およびdirtyRegionOffset()も参照してください 。
void QAbstractItemView::setIndexWidget(const QModelIndex &index, QWidget *widget)
指定されたwidget を、指定されたindex にあるアイテムに設定し、ウィジェットの所有権をビューポートに渡します。
index が無効な場合(例:ルートインデックスが渡された場合など)、この関数は何も行いません。
指定されたwidget のautoFillBackground プロパティはtrueに設定されている必要があります。そうしないと、ウィジェットの背景が透明になり、モデルデータと、指定されたindex にあるアイテムの両方が表示されます。
注:ビューは widget の所有権を取得します。つまり、インデックスウィジェットAがインデックスウィジェットBに置き換えられた場合、インデックスウィジェットAは削除されます。例えば、以下のコードスニペットでは、QLineEdit オブジェクトが削除されます。
この関数は、データ項目に対応する表示領域内で静的なコンテンツを表示する場合にのみ使用してください。カスタムの動的コンテンツを表示したり、カスタムエディタウィジェットを実装したりする場合は、代わりにQStyledItemDelegate をサブクラス化してください。
「indexWidget()」および「デリゲートクラス」も参照してください 。
void QAbstractItemView::setItemDelegate(QAbstractItemDelegate *delegate)
このビューとそのモデルのアイテムデリゲートをdelegate に設定します。これは、アイテムの編集や表示を完全に制御したい場合に役立ちます。
既存デリゲートは削除されますが、消去されることはありません。QAbstractItemView はdelegate の所有権を取得しません。
警告: ビュー間で同じデリゲートのインスタンスを共有しないでください 。そうすると、特定のデリゲートに接続されている各ビューが `closeEditor()` シグナルを受信し、すでに閉じられているエディタにアクセスしたり、変更したり、閉じようとしたりするため、不正確または直感に反する編集動作を引き起こす可能性があります。
itemDelegate()も参照してください 。
void QAbstractItemView::setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate)
指定されたcolumn に対して、このビューおよびモデルで使用される指定されたdelegate を設定します。column 上のすべてのアイテムは、デフォルトのデリゲート(つまり、itemDelegate()) を使用する代わりに、delegate によって描画および管理されます。
column に対して既存のカラムデリゲートがある場合は、それらは削除されますが、消去されることはありません。QAbstractItemView はdelegate の所有権を取得しません。
注: デリゲートが行と列の両方に割り当てられている場合 、行のデリゲートが優先され、交差するセルインデックスを管理します。
警告: ビュー間で同じデリゲートのインスタンスを共有してはなりません 。そうすると、特定のデリゲートに接続された各ビューが `closeEditor()` シグナルを受信し、すでに閉じられているエディタへのアクセス、変更、または閉じようとしてしまう可能性があるため、不正確または直感に反する編集動作を引き起こす恐れがあります。
関連項目: itemDelegateForColumn()、setItemDelegateForRow()、およびitemDelegate()。
void QAbstractItemView::setItemDelegateForRow(int row, QAbstractItemDelegate *delegate)
指定されたrow に対して、このビューおよびモデルで使用される指定されたdelegate を設定します。row 上のすべてのアイテムは、デフォルトのデリゲート(つまり、itemDelegate()) を使用する代わりに、delegate によって描画および管理されます。
row に対して既存の行デリゲートがある場合は、それらは削除されますが、消去されることはありません。QAbstractItemView はdelegate の所有権を取得しません。
注: デリゲートが行と列の両方に割り当てられている場合 、行のデリゲート(つまり、このデリゲート)が優先され、交差するセルインデックスを管理します。
警告: ビュー間で同じデリゲートのインスタンスを共有してはなりません 。そうすると、特定のデリゲートに接続された各ビューがcloseEditor() シグナルを受信し、すでに閉じられているエディタへのアクセス、変更、または閉じようと試みる可能性があるため、不正確または直感に反する編集動作を引き起こす可能性があります。
関連項目: itemDelegateForRow()、setItemDelegateForColumn()、およびitemDelegate()。
[virtual] void QAbstractItemView::setModel(QAbstractItemModel *model)
表示するビューのmodel を設定します。
この関数は、新しい選択モデルを作成して設定し、以前にsetSelectionModel()で設定されていたモデルを置き換えます。ただし、古い選択モデルは複数のビュー間で共有されている可能性があるため、削除されません。不要になった場合は、古い選択モデルを削除することをお勧めします。削除は次のコードで行います:
QItemSelectionModel *m = view->selectionModel();
view->setModel(new model);
delete m;古いモデルと古い選択モデルの両方に親が存在しない場合、またはそれらの親が長寿命のオブジェクトである場合は、deleteLater() 関数を呼び出して明示的に削除する方が望ましい場合があります。
モデルは多くの異なるビュー間で共有される可能性があるため、ビューは、そのビューがモデルの親オブジェクトでない限り、モデルの所有権を取得しません。
model()、selectionModel()、およびsetSelectionModel()も参照してください 。
[virtual slot] void QAbstractItemView::setRootIndex(const QModelIndex &index)
指定されたindex にあるアイテムをルートアイテムとして設定します。
rootIndex()も参照してください 。
[pure virtual protected] void QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags)
矩形(rect )内の、またはその矩形に接触している項目に対して、選択処理 `flags ` を適用します。
独自のアイテムビューを実装する場合、setSelection メソッドではselectionModel()->select(selection, flags) を呼び出す必要があります。ここで、selection は空のQModelIndex であるか、rect に含まれるすべてのアイテムを含むQItemSelection のいずれかです。
selectionCommand() およびselectedIndexes()も参照してください 。
[virtual] void QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel)
現在の選択モデルを、指定されたselectionModel に設定します。
なお、この関数の後にsetModel()を呼び出した場合、指定されたselectionModel は、ビューによって作成されたものに置き換えられます。
注: 古い選択モデルが不要になった場合、つまり他のビューで使用されなくなった場合、そのモデルを削除するかどうかは アプリケーション次第です 。 親オブジェクトが削除されると、これは自動的に行われます。ただし、親オブジェクトがない場合や、親オブジェクトが長寿命のオブジェクトである場合は、deleteLater() 関数を呼び出して明示的に削除した方が望ましい場合があります。
selectionModel()、setModel()、およびclearSelection()も参照してください 。
[protected] void QAbstractItemView::setState(QAbstractItemView::State state)
アイテムビューの状態を、指定されたstate に設定します。
state()も参照してください 。
[virtual] int QAbstractItemView::sizeHintForColumn(int column) const
指定されたcolumn の幅に関するサイズヒントを返します。モデルが存在しない場合は-1を返します。
この関数は、水平ヘッダーを持つビューにおいて、指定されたcolumn の内容に基づいてヘッダーセクションのサイズヒントを取得するために使用されます。
sizeHintForRow()も参照してください 。
QSize QAbstractItemView::sizeHintForIndex(const QModelIndex &index) const
指定されたindex を持つ項目のサイズヒントを返すか、無効なインデックスの場合は無効なサイズを返す。
sizeHintForRow() およびsizeHintForColumn()も参照してください 。
[virtual] int QAbstractItemView::sizeHintForRow(int row) const
指定されたrow の高さサイズヒントを返します。モデルが存在しない場合は-1を返します。
返される高さは、指定されたrow の項目のサイズヒントを用いて計算されます。つまり、返される値は各項目の中で最も高い高さとなります。行の高さを制御するには、QAbstractItemDelegate::sizeHint()関数を再実装する必要があることに注意してください。
この関数は、垂直ヘッダーを持つビューにおいて、指定されたrow の内容に基づいてヘッダーセクションのサイズヒントを取得するために使用されます。
sizeHintForColumn()も参照してください 。
[virtual protected] void QAbstractItemView::startDrag(Qt::DropActions supportedActions)
指定されたsupportedActions を使用して、drag->exec()を呼び出し、ドラッグを開始します。
[protected] QAbstractItemView::State QAbstractItemView::state() const
アイテムビューの状態を返します。
setState()も参照してください 。
[override virtual protected] void QAbstractItemView::timerEvent(QTimerEvent *event)
QObject::timerEvent(QTimerEvent *event) を再実装します。
この関数は、ウィジェットにタイマーイベントが送信された際に、指定されたevent を引数として呼び出されます。
QObject::timerEvent()も参照してください 。
[slot] void QAbstractItemView::update(const QModelIndex &index)
指定されたindex が占める領域を更新します。
[virtual protected slot] void QAbstractItemView::updateGeometries()
ビューの子ウィジェットのジオメトリを更新します。
[pure virtual protected] int QAbstractItemView::verticalOffset() const
ビューの垂直方向のオフセットを返します。
基底クラスでは、これは純粋仮想関数です。
horizontalOffset()も参照してください 。
[signal] void QAbstractItemView::viewportEntered()
このシグナルは、マウスカーソルがビューポートに入ったときに発生します。この機能が動作するには、マウス追跡が有効になっている必要があります。
entered()も参照してください 。
[override virtual protected] bool QAbstractItemView::viewportEvent(QEvent *event)
QAbstractScrollArea::viewportEvent(QEvent *event) を再実装します。
この関数は、指定されたevent がQEvent::ToolTip またはQEvent::WhatsThis である場合、ツールチップおよび「What's This?」モードの処理に使用されます。それ以外のすべてのイベントは、基底クラスのviewportEvent()ハンドラに転送されます。
event が認識され処理された場合はtrue を返し、それ以外の場合はfalse を返します。
[override virtual protected] QSize QAbstractItemView::viewportSizeHint() const
QAbstractScrollArea::viewportSizeHint() const を再実装します。
[pure virtual] QRect QAbstractItemView::visualRect(const QModelIndex &index) const
index における、そのアイテムがビューポート上で占める矩形を返します。
アイテムが複数の領域にまたがって表示されている場合、visualRect は、index が含まれる可能性のある領域全体ではなく、index を含む主要な領域を返す必要があります。
基底クラスでは、これは純粋仮想関数です。
indexAt() およびvisualRegionForSelection()も参照してください 。
[pure virtual protected] QRegion QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const
指定されたselection 内のアイテムのビューポートから領域を返します。
基底クラスでは、これは純粋仮想関数です。
visualRect() およびselectedIndexes()も参照してください 。
© 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.