이 페이지에서

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()

보호된 유형

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 &region)
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::EndEditHint hint)
virtual void commitData(QWidget*editor)
가상 void currentChanged(const QModelIndex&current, 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, int start, int end)
가상 void rowsInserted(const QModelIndex&parent, int start, int end)
가상 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 클래스는 모델/뷰 클래스 중 하나이며 Qt의 모델/뷰 프레임워크의 일부입니다.

QAbstractItemView를 상속하는 뷰 클래스는 항목 그리기, 항목의 기하 구조 반환, 항목 찾기 등과 같은 뷰 고유의 기능만 구현하면 됩니다.

QAbstractItemView는 edit() 및 setCurrentIndex()과 같은 공통 슬롯을 제공합니다. 또한 dataChanged(), rowsInserted(), rowsAboutToBeRemoved(), selectionChanged() 및 currentChanged()을 비롯한 많은 보호된 슬롯도 제공됩니다.

루트 항목은 rootIndex()에서, 현재 항목은 currentIndex()에서 반환됩니다. 항목이 표시되는지 확인하려면 scrollTo()을 사용하십시오.

QAbstractItemView의 일부 함수는 스크롤과 관련이 있습니다. 예를 들어, setHorizontalScrollMode() 및 setVerticalScrollMode() 함수가 있습니다. 스크롤바의 범위를 설정하려면, 예를 들어 뷰의 resizeEvent() 함수를 재구현할 수 있습니다:

void MyView::resizeEvent(QResizeEvent *event) {
    horizontalScrollBar()->setRange(0, realWidth - width());
    ...
}

위젯이 표시될 때까지 범위가 업데이트되지 않는다는 점에 유의하십시오.

그 밖에도 선택 제어와 관련된 여러 함수가 있습니다. 예를 들어 setSelectionMode() 및 setSelectionBehavior() 등이 있습니다. 이 클래스는 기본 선택 모델(selectionModel())을 제공하지만, setSelectionModel()을 사용하여 QItemSelectionModel 의 인스턴스로 이를 대체할 수 있습니다.

항목의 표시 및 편집을 완전히 제어하려면 setItemDelegate()을 사용하여 델리게이트를 지정할 수 있습니다.

QAbstractItemView는 많은 보호된 함수를 제공합니다. 일부는 편집과 관련된 함수이며(예: edit() 및 commitData()), 다른 일부는 키보드 및 마우스 이벤트 핸들러입니다.

참고: QAbstractItemView를 상속받아 뷰포트의 내용을 업데이트하려는경우 , 모든 그리기 작업이 뷰포트에서 이루어지므로 update() 대신 viewport->update()를 사용해야 합니다.

참조: 뷰 클래스, 모델/뷰 프로그래밍, QAbstractItemModel.

멤버 유형 문서

enum QAbstractItemView::CursorAction

이 열거형은 항목 간을 이동하는 다양한 방법을 설명하며,

상수값설명
QAbstractItemView::MoveUp0현재 항목 바로 위의 항목으로 이동합니다.
QAbstractItemView::MoveDown1현재 항목 바로 아래에 있는 항목으로 이동합니다.
QAbstractItemView::MoveLeft2현재 항목의 왼쪽에 있는 항목으로 이동합니다.
QAbstractItemView::MoveRight3현재 항목의 오른쪽에 있는 항목으로 이동합니다.
QAbstractItemView::MoveHome4왼쪽 상단 모서리에 있는 항목으로 이동합니다.
QAbstractItemView::MoveEnd5오른쪽 하단 모서리에 있는 항목으로 이동합니다.
QAbstractItemView::MovePageUp6현재 항목 바로 위 페이지로 이동합니다.
QAbstractItemView::MovePageDown7현재 항목 아래로 한 페이지 아래로 이동합니다.
QAbstractItemView::MoveNext8현재 항목 다음의 항목으로 이동합니다.
QAbstractItemView::MovePrevious9현재 항목 바로 앞의 항목으로 이동합니다.

moveCursor()도 참조하십시오 .

enum QAbstractItemView::DragDropMode

뷰에서 처리할 수 있는 다양한 드래그 앤 드롭 이벤트를 설명합니다. 기본적으로 뷰는 드래그나 드롭을 지원하지 않습니다(NoDragDrop).

상수값설명
QAbstractItemView::NoDragDrop0드래그 또는 드롭을 지원하지 않습니다.
QAbstractItemView::DragOnly1뷰가 자체 항목의 드래그를 지원합니다.
QAbstractItemView::DropOnly2뷰에서 드롭을 허용합니다
QAbstractItemView::DragDrop3뷰는 드래그와 드롭을 모두 지원합니다
QAbstractItemView::InternalMove4뷰는 자체 항목에 대해서만 이동(복사 아님) 작업을 허용합니다.

사용되는 모델이 드래그 앤 드롭 작업을 지원해야 한다는 점에 유의하십시오.

setDragDropMode() 및 항목 뷰에서 드래그 앤 드롭 사용을참조하십시오 .

enum QAbstractItemView::DropIndicatorPosition

이 열거형은 현재 마우스 위치의 인덱스를 기준으로 드롭 표시기의 위치를 나타냅니다:

상수값설명
QAbstractItemView::OnItem0항목이 인덱스 위에 드롭됩니다.
QAbstractItemView::AboveItem1항목이 인덱스 위에 드롭됩니다.
QAbstractItemView::BelowItem2항목은 인덱스 아래에 드롭됩니다.
QAbstractItemView::OnViewport3항목은 항목이 없는 뷰포트의 영역에 드롭됩니다. 각 뷰가 뷰포트에 드롭된 항목을 처리하는 방식은 사용 중인 기본 모델의 동작에 따라 달라집니다.

enum QAbstractItemView::EditTrigger
flags QAbstractItemView::EditTriggers

이 열거형은 항목 편집을 시작하는 동작들을 설명합니다.

상수값설명
QAbstractItemView::NoEditTriggers0편집할 수 없습니다.
QAbstractItemView::CurrentChanged1현재 항목이 변경될 때마다 편집이 시작됩니다.
QAbstractItemView::DoubleClicked2항목을 더블 클릭하면 편집이 시작됩니다.
QAbstractItemView::SelectedClicked4이미 선택된 항목을 클릭하면 편집이 시작됩니다.
QAbstractItemView::EditKeyPressed8항목 위에서 플랫폼 편집 키를 누르면 편집이 시작됩니다.
QAbstractItemView::AnyKeyPressed16항목 위에서 아무 키나 누르면 편집이 시작됩니다.
QAbstractItemView::AllEditTriggers31위의 모든 동작에 대해 편집이 시작됩니다.

EditTriggers 유형은 QFlags<EditTrigger>에 대한 typedef입니다. 이 유형은 EditTrigger 값들의 OR 조합을 저장합니다.

enum QAbstractItemView::ScrollHint

상수값설명
QAbstractItemView::EnsureVisible0항목이 보이도록 스크롤합니다.
QAbstractItemView::PositionAtTop1스크롤하여 항목을 뷰포트 상단에 배치합니다.
QAbstractItemView::PositionAtBottom2스크롤하여 항목을 뷰포트 하단에 배치합니다.
QAbstractItemView::PositionAtCenter3항목을 뷰포트 중앙에 위치시키려면 스크롤하십시오.

enum QAbstractItemView::ScrollMode

스크롤바의 동작 방식을 설명합니다. 스크롤 모드를 ScrollPerPixel로 설정하면, setSingleStep()를 사용하여 명시적으로 설정하지 않은 한 단일 단계 크기가 자동으로 조정됩니다. 단일 단계 크기를 -1로 설정하면 자동 조정 기능을 다시 활성화할 수 있습니다.

상수값설명
QAbstractItemView::ScrollPerItem0뷰는 내용을 한 항목씩 스크롤합니다.
QAbstractItemView::ScrollPerPixel1뷰는 내용을 한 픽셀씩 스크롤합니다.

enum QAbstractItemView::SelectionBehavior

상수값설명
QAbstractItemView::SelectItems0단일 항목 선택.
QAbstractItemView::SelectRows1행만 선택합니다.
QAbstractItemView::SelectColumns2열만 선택합니다.

enum QAbstractItemView::SelectionMode

이 열거형은 뷰가 사용자 선택에 어떻게 반응하는지를 나타냅니다:

상수값설명
QAbstractItemView::SingleSelection1사용자가 항목을 선택하면, 이미 선택된 항목은 모두 선택 해제됩니다. 사용자는 선택된 항목을 클릭할 때 Ctrl 키를 누르면 해당 항목의 선택을 해제할 수 있습니다.
QAbstractItemView::ContiguousSelection4사용자가 일반적인 방법으로 항목을 선택하면, 기존 선택이 해제되고 새로운 항목이 선택됩니다. 그러나 사용자가 Shift 키를 누른 상태에서 항목을 클릭하면, 현재 항목과 클릭한 항목 사이의 모든 항목이 클릭한 항목의 상태에 따라 선택되거나 선택이 해제됩니다.
QAbstractItemView::ExtendedSelection3사용자가 일반적인 방법으로 항목을 선택하면 기존 선택이 해제되고 새로운 항목이 선택됩니다. 그러나 사용자가 항목을 클릭할 때 Ctrl 키를 누르면 클릭한 항목의 선택 상태가 토글되며, 다른 모든 항목은 변경되지 않습니다. 사용자가 항목을 클릭할 때 Shift 키를 누르면, 현재 항목과 클릭한 항목 사이의 모든 항목이 클릭한 항목의 상태에 따라 선택되거나 선택 해제됩니다. 마우스를 드래그하여 여러 항목을 선택할 수 있습니다.
QAbstractItemView::MultiSelection2사용자가 일반적인 방법으로 항목을 선택하면, 해당 항목의 선택 상태가 토글되며 다른 항목들은 변경되지 않습니다. 마우스를 항목 위로 드래그하여 여러 항목을 토글할 수 있습니다.
QAbstractItemView::NoSelection0항목을 선택할 수 없습니다.

가장 일반적으로 사용되는 모드는 SingleSelection과 ExtendedSelection입니다.

enum QAbstractItemView::State

뷰가 가질 수 있는 다양한 상태를 설명합니다. 이는 대개 사용자 정의 뷰를 재구현할 때만 유용합니다.

상수값설명
QAbstractItemView::NoState0이것이 기본 상태입니다.
QAbstractItemView::DraggingState1사용자가 항목을 드래그하고 있습니다.
QAbstractItemView::DragSelectingState2사용자가 항목을 선택하고 있습니다.
QAbstractItemView::EditingState3사용자가 위젯 편집기에서 항목을 편집하고 있습니다.
QAbstractItemView::ExpandingState4사용자가 항목의 분기를 열고 있습니다.
QAbstractItemView::CollapsingState5사용자가 항목의 하위 항목을 닫고 있습니다.
QAbstractItemView::AnimatingState6항목 보기가 애니메이션을 실행 중입니다.

속성 문서

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 연산자로 결합한 것입니다. 뷰는 수행된 작업이 이 속성에 설정된 경우에만 항목 편집을 시작합니다.

기본값은 다음과 같습니다:

액세스 함수:

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

이 속성은 뷰가 어떤 선택 모드로 작동하는지를 결정합니다.

이 속성은 사용자가 항목을 하나만 선택할 수 있는지, 여러 개를 선택할 수 있는지 여부를 제어하며, 여러 항목을 선택할 경우 선택 범위가 연속된 항목 범위여야 하는지 여부를 결정합니다.

액세스 함수:

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

이 속성은 탭 및 백탭을 이용한 항목 탐색이 활성화되어 있는지 여부를 나타냅니다.

액세스 기능:

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 &current, 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 까지(해당 값 포함)에 해당하는 항목들입니다. 단 하나의 항목만 변경된 경우 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 `를 확인하고, 구현에서 인식하는 모든 멤버를 채운 다음, 반환하기 전에 `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(const Qt::InputMethodQuery query)를 재구현합니다.

[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()이 여러 번 호출되더라도, 뷰는 레이아웃을 한 번만 수행합니다.

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 &region)

지정된 region 를 변경된 상태로 표시하고 업데이트가 이루어지도록 예약합니다. 이 함수는 사용자 정의 뷰 서브클래스를 구현하는 경우에만 호출하면 됩니다.

scrollDirtyRegion() 및 dirtyRegionOffset()도 참조하십시오 .

void QAbstractItemView::setIndexWidget(const QModelIndex &index, QWidget *widget)

지정된 ` widget `를 지정된 ` index` 위치의 항목에 설정하고, 위젯의 소유권을 뷰포트에 넘겨줍니다.

index 가 유효하지 않은 경우(예: 루트 인덱스를 전달하는 경우), 이 함수는 아무 작업도 수행하지 않습니다.

지정된 widget 의 autoFillBackground 속성은 true로 설정되어 있어야 합니다. 그렇지 않으면 위젯의 배경이 투명해져, 모델 데이터와 지정된 index 에 있는 항목이 모두 표시됩니다.

참고: 뷰는 ` widget`의 소유권을 갖습니다. 즉, 인덱스 위젯 A가 인덱스 위젯 B로 대체되면 인덱스 위젯 A는 삭제됩니다. 예를 들어, 아래 코드 스니펫에서는 ` QLineEdit ` 객체가 삭제됩니다.

setIndexWidget(index, new QLineEdit);
...
setIndexWidget(index, new QTextEdit);

이 함수는 데이터 항목에 해당하는 가시 영역 내에서 정적 콘텐츠를 표시하는 용도로만 사용해야 합니다. 사용자 정의 동적 콘텐츠를 표시하거나 사용자 정의 편집기 위젯을 구현하려면 대신 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 )을 적용합니다.

사용자 정의 itemview를 구현할 때, 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 인 경우, 툴팁 및 "이게 뭐죠?" 모드를 처리하는 데 사용됩니다. 그 외의 모든 이벤트는 기본 클래스의 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.