이 페이지에서

QHeaderView Class

QHeaderView 클래스는 항목 뷰에 헤더 행 또는 헤더 열을 제공합니다. 더 보기...

헤더: #include <QHeaderView>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
상속: QAbstractItemView

공개 유형

enum ResizeMode { Interactive, Fixed, Stretch, ResizeToContents, Custom }

속성

공개 함수

QHeaderView(Qt::Orientation orientation, QWidget *parent = nullptr)
virtual ~QHeaderView()
bool cascadingSectionResizes() const
int count() const
Qt::Alignment defaultAlignment() const
int defaultSectionSize() const
int hiddenSectionCount() const
void hideSection(int logicalIndex)
bool highlightSections() const
bool isFirstSectionMovable() const
bool isSectionHidden(int logicalIndex) const
bool isSortIndicatorClearable() const
bool isSortIndicatorShown() const
int length() const
int logicalIndex(int visualIndex) const
int logicalIndexAt(const QPoint &pos) const
int logicalIndexAt(int position) const
int logicalIndexAt(int x, int y) const
int maximumSectionSize() const
int minimumSectionSize() const
void moveSection(int from, int to)
int offset() const
Qt::Orientation orientation() const
void resetDefaultSectionSize()
int resizeContentsPrecision() const
void resizeSection(int logicalIndex, int size)
void resizeSections(QHeaderView::ResizeMode mode)
bool restoreState(const QByteArray &state)
QByteArray saveState() const
int sectionPosition(int logicalIndex) const
QHeaderView::ResizeMode sectionResizeMode(int logicalIndex) const
int sectionSize(int logicalIndex) const
int sectionSizeHint(int logicalIndex) const
int sectionViewportPosition(int logicalIndex) const
bool sectionsClickable() const
bool sectionsHidden() const
bool sectionsMovable() const
bool sectionsMoved() const
void setCascadingSectionResizes(bool enable)
void setDefaultAlignment(Qt::Alignment alignment)
void setDefaultSectionSize(int size)
void setFirstSectionMovable(bool movable)
void setHighlightSections(bool highlight)
void setMaximumSectionSize(int size)
void setMinimumSectionSize(int size)
void setResizeContentsPrecision(int precision)
void setSectionHidden(int logicalIndex, bool hide)
void setSectionResizeMode(QHeaderView::ResizeMode mode)
void setSectionResizeMode(int logicalIndex, QHeaderView::ResizeMode mode)
void setSectionsClickable(bool clickable)
void setSectionsMovable(bool movable)
void setSortIndicator(int logicalIndex, Qt::SortOrder order)
void setSortIndicatorClearable(bool clearable)
void setSortIndicatorShown(bool show)
void setStretchLastSection(bool stretch)
void showSection(int logicalIndex)
Qt::SortOrder sortIndicatorOrder() const
int sortIndicatorSection() const
bool stretchLastSection() const
int stretchSectionCount() const
void swapSections(int first, int second)
int visualIndex(int logicalIndex) const
int visualIndexAt(int position) const

재구현된 공용 함수

virtual void reset() override
virtual void setModel(QAbstractItemModel *model) override
virtual void setVisible(bool v) override
virtual QSize sizeHint() const override

공개 슬롯

void headerDataChanged(Qt::Orientation orientation, int logicalFirst, int logicalLast)
void setOffset(int offset)
void setOffsetToLastSection()
void setOffsetToSectionPosition(int visualSectionNumber)

신호

void geometriesChanged()
void sectionClicked(int logicalIndex)
void sectionCountChanged(int oldCount, int newCount)
void sectionDoubleClicked(int logicalIndex)
void sectionEntered(int logicalIndex)
void sectionHandleDoubleClicked(int logicalIndex)
void sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex)
void sectionPressed(int logicalIndex)
void sectionResized(int logicalIndex, int oldSize, int newSize)
void sortIndicatorChanged(int logicalIndex, Qt::SortOrder order)
void sortIndicatorClearableChanged(bool clearable)

보호된 함수

virtual void initStyleOption(QStyleOptionHeader *option) const
(since 6.0) virtual void initStyleOptionForIndex(QStyleOptionHeader *option, int logicalIndex) const
virtual void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const
virtual QSize sectionSizeFromContents(int logicalIndex) const

재구현된 보호된 함수

virtual void currentChanged(const QModelIndex &current, const QModelIndex &old) override
virtual bool event(QEvent *e) override
virtual int horizontalOffset() const override
virtual void mouseDoubleClickEvent(QMouseEvent *e) override
virtual void mouseMoveEvent(QMouseEvent *e) override
virtual void mousePressEvent(QMouseEvent *e) override
virtual void mouseReleaseEvent(QMouseEvent *e) override
virtual void paintEvent(QPaintEvent *e) override
virtual void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) override
virtual int verticalOffset() const override
virtual bool viewportEvent(QEvent *e) override

보호된 슬롯

void resizeSections()
void sectionsAboutToBeRemoved(const QModelIndex &parent, int logicalFirst, int logicalLast)
void sectionsInserted(const QModelIndex &parent, int logicalFirst, int logicalLast)

상세 설명

QHeaderView는 QTableView 및 QTreeView 클래스와 같은 항목 뷰에서 사용되는 헤더를 표시합니다. 이 클래스는 이전에 동일한 목적으로 사용되었던 Qt3의 QHeader 클래스를 대체하지만, 항목 뷰 클래스와의 일관성을 위해 Qt의 모델/뷰 아키텍처를 사용합니다.

QHeaderView 클래스는 모델/뷰 클래스 중 하나이며, Qt의 모델/뷰 프레임워크의 일부입니다.

헤더는 ` QAbstractItemModel::headerData()` 함수를 사용하여 모델로부터 각 섹션의 데이터를 가져옵니다. ` QAbstractItemModel::setHeaderData()`을 사용하여 데이터를 설정할 수 있습니다.

각 헤더에는 orientation() 함수와 count() 함수를 통해 지정된 여러 섹션이 있습니다. 섹션은 헤더의 일부를 의미하며, 방향에 따라 행(row) 또는 열(column)이 됩니다.

섹션은 ` moveSection()` 및 ` resizeSection()`을 사용하여 이동하거나 크기를 조정할 수 있으며, ` hideSection()` 및 ` showSection()`을 사용하여 숨기거나 표시할 수도 있습니다.

헤더의 각 섹션은 section()을 통해 지정된 섹션 ID로 식별되며, 헤더 내의 특정 visualIndex() 위치에 배치될 수 있습니다. 섹션에는 setSortIndicator()를 사용하여 정렬 표시기를 설정할 수 있으며, 이는 관련 항목 뷰의 항목들이 해당 섹션이 지정한 순서대로 정렬될 것임을 나타냅니다.

가로형 헤더의 경우 섹션은 모델의 열에 해당하며, 세로형 헤더의 경우 섹션은 모델의 행에 해당합니다.

헤더 섹션 이동

헤더는 고정하거나, ` setSectionsMovable()`를 사용하여 이동 가능하게 만들 수 있습니다. 또한 ` setSectionsClickable()`를 사용하여 클릭 가능하게 만들 수 있으며, ` setSectionResizeMode()`에 따라 크기 조정 동작이 적용됩니다.

참고: 섹션 크기를 조정하기 위해 헤더를더블 클릭하는 기능은 표시된 행에만 적용됩니다.

헤더는 사용자가 섹션을 이동하면 sectionMoved()을, 섹션 크기를 조정하면 sectionResized()을, 마우스 클릭 시에는 sectionClicked()과 sectionHandleDoubleClicked()을 발생시킵니다. 또한 헤더는 sectionCountChanged()을 발생시킵니다.

logicalIndex() 및 logicalIndexAt() 함수를 사용하거나, visualIndex() 및 visualIndexAt() 함수를 통해 인덱스 위치를 확인하여 섹션을 식별할 수 있습니다. 섹션이 이동되면 시각적 인덱스는 변경되지만, 논리적 인덱스는 변경되지 않습니다.

모양

QTableWidget 및 ` QTableView `는 기본 헤더를 생성합니다. 헤더를 표시하려면 ` setVisible()`를 사용할 수 있습니다.

모든 ItemDataRole가 QHeaderView에 영향을 미치는 것은 아닙니다. 다른 역할을 렌더링해야 하는 경우, QHeaderView를 서브클래스화하고 paintEvent()를 재구현할 수 있습니다. QHeaderView는 스타일과 충돌하지 않는 한(데스크톱 테마를 따르는 스타일의 경우 충돌이 발생할 수 있음) 다음 항목 데이터 역할을 준수합니다:

TextAlignmentRole, DisplayRole, FontRole, DecorationRole, ForegroundRole, BackgroundRole.

참고: 각 헤더는 각 섹션의 데이터를 직접 렌더링하며, 델리게이트에 의존하지 않습니다. 따라서 헤더의 setItemDelegate() 함수를 호출해도 아무런 효과가 없습니다.

대용량 모델에 대한 특별 고려 사항

헤더 뷰는 섹션당 8~16바이트의 메모리를 사용합니다. 그러나 Qt 6.9부터는 하나 이상의 섹션 크기가 조정되거나 순서가 변경되는 경우에만 이 섹션 메모리가 사용됩니다. 즉, swapSections, resizeSection, hideSection, moveSection 및 stretchLastSection (활성화) 함수가 호출되지 않는 한, 모델에 수백만 개의 섹션이 있어도 QHeaderView가 그에 비례하여 막대한 양의 메모리를 소비하지 않을 수 있습니다. 사용자의 조작으로 인해 이러한 호출이 발생하는 것을 방지하려면 ` resize mode `을 ` Fixed `으로 설정해야 합니다(특정 인덱스에 대해 이 설정을 명시적으로 지정해서는 안 됩니다. 그렇게 할 경우 정반대의 결과가 발생합니다). 또한 ` sectionsMovable `을 비활성화하여 사용자가 섹션을 이동하지 못하도록 해야 합니다.

보안 고려 사항

restoreState() 함수는 열 순서, 섹션 크기, 정렬 표시기 및 관련 뷰 상태를 설명하는 버전 관리된 바이너리 블롭을 역직렬화합니다. 포맷의 매직 넘버, 버전 및 보고된 총 길이는 유효성 검증을 거치지만, 역직렬화된 시각적 및 논리적 인덱스와 정렬 표시기 섹션은 내부 데이터 구조에 인덱싱하는 데 사용되기 전에 헤더의 실제 섹션 수와 비교하여 검증되지 않습니다.

restoreState()에는 saveState()에 의해 생성되고, 동일한 버전 또는 호환되는 버전의 애플리케이션에 의해 영구 저장된(일반적으로 QSettings 를 통해 왕복 전송된) QByteArray 만 전달해야 합니다. 네트워크에서 다운로드한 파일, 동기화되거나 공유된 구성 파일, 또는 잠재적으로 손상되었을 수 있는 다른 애플리케이션에서 제공된 데이터와 같이 출처가 불분명하거나 신뢰할 수 없는 데이터로 restoreState()를 호출해서는 안 됩니다.

또한 Model/View 프로그래밍, QListView, QTableView, QTreeView, saveState() 및 restoreState()을 참조하십시오 .

회원 유형 설명서

enum QHeaderView::ResizeMode

크기 조정 모드는 헤더 섹션의 동작 방식을 지정합니다. 이 모드는 헤더 뷰 전체에 적용하거나, ` setSectionResizeMode()`를 사용하여 개별 섹션에 적용할 수 있습니다.

상수값설명
QHeaderView::Interactive0사용자가 섹션의 크기를 조정할 수 있습니다. 또한 resizeSection()를 사용하여 프로그래밍 방식으로 섹션의 크기를 조정할 수도 있습니다. 섹션 크기의 기본값은 defaultSectionSize 입니다. ( cascadingSectionResizes 도 참조하십시오.)
QHeaderView::Fixed2사용자는 섹션의 크기를 조정할 수 없습니다. 섹션의 크기는 resizeSection()를 사용하여 프로그래밍 방식으로만 조정할 수 있습니다. 섹션 크기의 기본값은 defaultSectionSize 입니다.
QHeaderView::Stretch1QHeaderView 사용 가능한 공간을 모두 채우도록 섹션 크기를 자동으로 조정합니다. 이 크기는 사용자나 프로그래밍 방식으로 변경할 수 없습니다.
QHeaderView::ResizeToContents3QHeaderView 전체 열 또는 행의 내용을 기준으로 섹션 크기를 최적의 크기로 자동 조정합니다. 사용자와 프로그래밍을 통해 크기를 변경할 수 없습니다. (이 값은 4.2 버전에서 도입되었습니다)

다음 값들은 더 이상 사용되지 않습니다:

상수값설명
QHeaderView::CustomFixed대신 Fixed를 사용하십시오.

setSectionResizeMode(), stretchLastSection 및 minimumSectionSize도 참조하십시오 .

속성 설명

cascadingSectionResizes : bool

이 속성은 사용자가 크기를 조정 중인 섹션이 최소 크기에 도달한 후, 대화형 크기 조정이 다음 섹션으로 연쇄적으로 적용될지 여부를 결정합니다.

이 속성은 크기 조정 모드가 ` Interactive `인 섹션에만 영향을 미칩니다.

기본값은 false입니다.

액세스 함수:

bool cascadingSectionResizes() const
void setCascadingSectionResizes(bool enable)

setSectionResizeMode()도 참조하십시오 .

defaultAlignment : Qt::Alignment

이 속성은 각 헤더 섹션 내 텍스트의 기본 정렬 방식을 지정합니다.

액세스 함수:

Qt::Alignment defaultAlignment() const
void setDefaultAlignment(Qt::Alignment alignment)

defaultSectionSize : int

이 속성은 크기 조정이 이루어지기 전 헤더 섹션의 기본 크기를 저장합니다.

이 속성은 크기 조정 모드가 ` Interactive ` 또는 ` Fixed `인 섹션에만 영향을 미칩니다.

기본적으로 이 속성의 값은 스타일에 따라 달라집니다. 따라서 스타일이 변경되면 이 속성도 그에 따라 업데이트됩니다. setDefaultSectionSize()를 호출하면 업데이트가 중지되며, resetDefaultSectionSize()를 호출하면 기본 동작이 복원됩니다.

액세스 함수:

int defaultSectionSize() const
void setDefaultSectionSize(int size)
void resetDefaultSectionSize()

setSectionResizeMode() 및 minimumSectionSize도 참조하십시오 .

firstSectionMovable : bool

이 속성은 사용자가 첫 번째 열을 이동할 수 있는지 여부를 지정합니다.

이 속성은 사용자가 첫 번째 열을 이동할 수 있는지 여부를 제어합니다. 트리 기반 데이터 모델( QTreeView)에서 첫 번째 열은 트리 구조를 포함하므로, ` setSectionsMovable`(true)로 설정된 후에도 기본적으로 이동할 수 없습니다.

예를 들어 트리 구조가 없는 평면 목록의 경우, 이 메서드를 호출하여 첫 번째 열을 다시 이동 가능하게 만들 수 있습니다. 이러한 상황에서는 QTreeView::setRootIsDecorated(false)도 함께 호출하는 것이 좋습니다.

treeView->setRootIsDecorated(false);
treeView->header()->setFirstSectionMovable(true);

setSectionsMovable(true)도 함께 호출되지 않는 한, 이 값을 true로 설정해도 아무런 효과가 없습니다.

액세스 함수:

bool isFirstSectionMovable() const
void setFirstSectionMovable(bool movable)

setSectionsMovable()도 참조하십시오 .

highlightSections : bool

이 속성은 선택된 항목이 포함된 섹션이 강조 표시되는지 여부를 결정합니다.

기본적으로 이 속성의 값은 ' false'입니다.

Access 함수:

bool highlightSections() const
void setHighlightSections(bool highlight)

maximumSectionSize : int

이 속성은 헤더 섹션의 최대 크기를 지정합니다.

최대 섹션 크기는 허용되는 가장 큰 섹션 크기를 의미합니다. 이 속성의 기본값은 1048575이며, 이는 섹션의 가능한 최대 크기이기도 합니다. 최대값을 -1로 설정하면 값이 가장 큰 섹션 크기로 재설정됩니다.

stretch를 제외하고, 이 속성은 모든 resize modes

Access 함수에서 이 속성이 적용됩니다:

int maximumSectionSize() const
void setMaximumSectionSize(int size)

setSectionResizeMode() 및 defaultSectionSize도 참조하십시오 .

minimumSectionSize : int

이 속성은 헤더 섹션의 최소 크기를 지정합니다.

최소 섹션 크기는 허용되는 가장 작은 섹션 크기입니다. 최소 섹션 크기가 -1로 설정된 경우, QHeaderView 은 font metrics 크기를 사용합니다.

이 속성은 모든 resize modes 에서 지원됩니다.

액세스 함수:

int minimumSectionSize() const
void setMinimumSectionSize(int size)

setSectionResizeMode() 및 defaultSectionSize도 참조하십시오 .

sectionsClickable : bool

헤더를 클릭할 수 있는 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다. 클릭 가능한 헤더를 설정하면 사용자가 해당 헤더와 관련된 뷰 내 데이터의 표시 방식을 변경할 수 있습니다.

액세스 함수:

bool sectionsClickable() const
void setSectionsClickable(bool clickable)

sectionPressed() 및 setSortIndicatorShown()도 참조하십시오 .

sectionsMovable : bool

sectionsMovable 가 true인 경우, 사용자가 헤더 섹션을 이동할 수 있으며, 그렇지 않은 경우 헤더 섹션은 고정됩니다.

QTreeView 와 함께 사용할 경우, 기본적으로 첫 번째 열은 (트리 구조를 포함하고 있으므로) 이동할 수 없습니다. setFirstSectionMovable(true)를 설정하면 이 열을 이동할 수 있게 할 수 있습니다.

액세스 함수:

bool sectionsMovable() const
void setSectionsMovable(bool movable)

sectionMoved() 및 setFirstSectionMovable()도 참조하십시오 .

showSortIndicator : bool

이 속성은 정렬 표시기가 표시되는지 여부를 결정합니다.

기본적으로 이 속성은 ' false'입니다.

액세스 함수:

bool isSortIndicatorShown() const
void setSortIndicatorShown(bool show)

setSectionsClickable()도 참조하십시오 .

[since 6.1] sortIndicatorClearable : bool

이 속성은 섹션을 여러 번 클릭하여 정렬 표시기를 지울 수 있는지 여부를 결정합니다.

이 속성은 사용자가 특정 섹션을 여러 번 클릭하여 해당 섹션의 정렬 표시기를 제거할 수 있는지 여부를 제어합니다. 일반적으로 섹션을 클릭하면 해당 섹션의 정렬 순서만 변경됩니다. 이 속성을 true로 설정하면 오름차순과 내림차순을 번갈아 변경한 후 정렬 표시기가 지워지며, 이는 일반적으로 모델의 원래 정렬 상태를 복원합니다.

sectionsClickable()도 true인 경우(예: QTableView 와 같이 특정 뷰의 기본값이거나, QTreeView::setSortingEnabled 를 호출하여 뷰를 정렬 가능하게 설정할 때 자동으로 설정되는 경우)를 제외하고는 이 속성을 true로 설정해도 아무런 효과가 없습니다.

이 열거형은 Qt 6.1에서 도입되었습니다.

액세스 함수:

bool isSortIndicatorClearable() const
void setSortIndicatorClearable(bool clearable)

Notifier 신호:

void sortIndicatorClearableChanged(bool clearable)

stretchLastSection : bool

이 속성은 헤더에서 마지막으로 표시되는 섹션이 사용 가능한 전체 공간을 차지하는지 여부를 나타냅니다.

기본값은 false입니다.

참고: QTreeView 에서 제공하는 가로형헤더는 이 속성이 true로 설정된 상태로 구성되어 있어, 뷰가 헤더를 위해 할당된 공간을 전혀 낭비하지 않도록 합니다. 이 값이 true로 설정되면, 이 속성은 헤더의 마지막 섹션에 설정된 크기 조정 모드를 재정의합니다.

액세스 함수:

bool stretchLastSection() const
void setStretchLastSection(bool stretch)

setSectionResizeMode()도 참조하십시오 .

멤버 함수 설명서

[explicit] QHeaderView::QHeaderView(Qt::Orientation orientation, QWidget *parent = nullptr)

지정된 ` orientation ` 및 ` parent`을 사용하여 새로운 제네릭 헤더를 생성합니다.

[virtual noexcept] QHeaderView::~QHeaderView()

헤더를 삭제합니다.

int QHeaderView::count() const

헤더에 포함된 섹션의 개수를 반환합니다.

sectionCountChanged() 및 length()도 참조하십시오 .

[override virtual protected] void QHeaderView::currentChanged(const QModelIndex &current, const QModelIndex &old)

QAbstractItemView::currentChanged(const QModelIndex &current, const QModelIndex &previous)를 재구현합니다.

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

QAbstractItemView::event(QEvent *event)를 재구현합니다.

[signal] void QHeaderView::geometriesChanged()

이 신호는 헤더의 형상이 변경되었을 때 발생합니다.

[slot] void QHeaderView::headerDataChanged(Qt::Orientation orientation, int logicalFirst, int logicalLast)

지정된 orientation 를 사용하여, logicalFirst 부터 logicalLast 까지(해당 주소 포함) 변경된 헤더 섹션을 업데이트합니다.

int QHeaderView::hiddenSectionCount() const

헤더에서 숨겨진 섹션의 개수를 반환합니다.

setSectionHidden() 및 isSectionHidden()도 참조하십시오 .

void QHeaderView::hideSection(int logicalIndex)

logicalIndex 로 지정된 섹션을 숨깁니다.

showSection(), isSectionHidden(), hiddenSectionCount() 및 setSectionHidden()도 참조하십시오 .

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

QAbstractItemView::horizontalOffset() const를 재구현합니다.

헤더의 수평 오프셋을 반환합니다. 수직 헤더의 경우 이 값은 0입니다.

offset()도 참조하십시오 .

[virtual protected] void QHeaderView::initStyleOption(QStyleOptionHeader *option) const

이 QHeaderView 에 있는 값을 사용하여 option 를 초기화합니다. 이 메서드는 하위 클래스에서 QStyleOptionHeader 가 필요하지만, 모든 정보를 직접 입력하고 싶지 않을 때 유용합니다.

QStyleOption::initFrom() 및 initStyleOptionForIndex()도 참조하십시오 .

[virtual protected, since 6.0] void QHeaderView::initStyleOptionForIndex(QStyleOptionHeader *option, int logicalIndex) const

지정된 ` logicalIndex`에서 ` option ` 스타일을 초기화합니다. 이 함수는 ` initStyleOption `가 호출된 후 ` paintSection `의 기본 구현에 의해 호출됩니다.

이 함수는 Qt 6.0에서 도입되었습니다.

paintSection() 및 initStyleOption()도 참조하십시오 .

bool QHeaderView::isSectionHidden(int logicalIndex) const

logicalIndex 로 지정된 섹션이 사용자에게 명시적으로 숨겨진 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

hideSection(), showSection(), setSectionHidden(), hiddenSectionCount()도 참조하십시오 .

int QHeaderView::length() const

헤더의 방향에 따른 길이를 반환합니다.

sizeHint(), setSectionResizeMode() 및 offset()도 참조하십시오 .

int QHeaderView::logicalIndex(int visualIndex) const

지정된 visualIndex 위치에 있는 섹션의 logicalIndex를 반환하며, visualIndex < 0이거나 visualIndex >= QHeaderView::count()인 경우 -1을 반환합니다.

visualIndex 은 숨겨진 섹션의 영향을 받지 않는다는 점에 유의하십시오.

visualIndex() 및 sectionPosition()도 참조하십시오 .

int QHeaderView::logicalIndexAt(const QPoint &pos) const

pos 에 지정된 위치에 있는 섹션의 논리 인덱스를 반환합니다. 헤더가 가로 방향인 경우 x 좌표가 사용되며, 그렇지 않은 경우 y 좌표가 사용되어 논리 인덱스를 찾습니다.

sectionPosition()도 참조하십시오 .

int QHeaderView::logicalIndexAt(int position) const

뷰포트 내에서 지정된 position 를 포함하는 섹션을 반환합니다.

visualIndexAt() 및 isSectionHidden()도 참조하십시오 .

int QHeaderView::logicalIndexAt(int x, int y) const

지정된 좌표에 있는 섹션의 논리적 인덱스를 반환합니다. 헤더가 수평 방향인 경우 x 가 사용되며, 그렇지 않은 경우 y 가 사용되어 논리적 인덱스를 찾습니다.

[override virtual protected] void QHeaderView::mouseDoubleClickEvent(QMouseEvent *e)

QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event)를 재구현합니다.

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

QAbstractItemView::mouseMoveEvent(QMouseEvent *event)를 재구현합니다.

[override virtual protected] void QHeaderView::mousePressEvent(QMouseEvent *e)

QAbstractItemView::mousePressEvent(QMouseEvent *event)를 재구현합니다.

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

QAbstractItemView::mouseReleaseEvent(QMouseEvent *event)를 재구현합니다.

void QHeaderView::moveSection(int from, int to)

시각 인덱스 from 에 있는 섹션을 시각 인덱스 to 로 이동시킵니다.

sectionsMoved()도 참조하십시오 .

int QHeaderView::offset() const

헤더의 오프셋을 반환합니다. 이는 헤더에서 가장 왼쪽(수직 헤더의 경우 가장 위쪽)에 위치한 보이는 픽셀입니다.

setOffset()도 참조하십시오 .

Qt::Orientation QHeaderView::orientation() const

헤더의 방향을 반환합니다.

Qt::Orientation도 참조하십시오 .

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

QAbstractScrollArea::paintEvent(QPaintEvent *event)를 재구현합니다.

[virtual protected] void QHeaderView::paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const

주어진 ` logicalIndex`로 지정된 구역을, 주어진 ` painter ` 및 ` rect`를 사용하여 채색합니다.

일반적으로 이 함수를 호출할 필요는 없습니다.

[override virtual] void QHeaderView::reset()

QAbstractItemView::reset() 메서드를 재구현합니다.

int QHeaderView::resizeContentsPrecision() const

` QHeaderView `가 ` ResizeToContents`에서 얼마나 정밀하게 계산되는지를 반환합니다.

setResizeContentsPrecision() 및 setSectionResizeMode()도 참조하십시오 .

void QHeaderView::resizeSection(int logicalIndex, int size)

logicalIndex 로 지정된 섹션의 크기를 픽셀 단위로 size 로 조정합니다. size 매개변수는 0 이상이어야 합니다. 단, 크기를 0으로 설정하는 것은 권장되지 않습니다. 이 경우 대신 hideSection 를 사용해야 합니다.

sectionResized(), sectionSize(), hideSection()도 참조하십시오 .

[protected slot] void QHeaderView::resizeSections()

크기 힌트에 따라 섹션의 크기를 조정합니다. 일반적으로 이 함수를 호출할 필요는 없습니다.

참고: 이 슬롯은 오버로드되어 있습니다. 이 슬롯에 연결하려면:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        headerView, qOverload<>(&QHeaderView::resizeSections));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        headerView, [receiver = headerView]() { receiver->resizeSections(); });
더 많은 예제와 방법에 대해서는 오버로드된 슬롯에 연결하기를 참조하십시오.

void QHeaderView::resizeSections(QHeaderView::ResizeMode mode)

현재 크기 조정 모드를 무시하고, 지정된 mode 에 따라 섹션의 크기를 조정합니다.

sectionResized()도 참조하십시오 .

bool QHeaderView::restoreState(const QByteArray &state)

이 헤더 뷰의 ` state `를 복원합니다. 이 함수는 상태가 복원된 경우 ` true `를 반환하고, 그렇지 않은 경우 `false`를 반환합니다.

saveState()도 참조하십시오 .

QByteArray QHeaderView::saveState() const

이 헤더 뷰의 현재 상태를 저장합니다.

저장된 상태를 복원하려면 반환된 값을 ` restoreState()`에 전달하십시오.

restoreState()도 참조하십시오 .

[signal] void QHeaderView::sectionClicked(int logicalIndex)

이 신호는 섹션을 클릭했을 때 발생합니다. 섹션의 논리적 인덱스는 ` logicalIndex`로 지정됩니다.

sectionPressed 신호도 함께 발생한다는 점에 유의하십시오.

setSectionsClickable() 및 sectionPressed()도 참조하십시오 .

[signal] void QHeaderView::sectionCountChanged(int oldCount, int newCount)

이 신호는 섹션의 수가 변경될 때, 즉 섹션이 추가되거나 삭제될 때 발송됩니다. 원래의 개수는 oldCount 에, 새로운 개수는 newCount 에 명시되어 있습니다.

count(), length(), headerDataChanged()도 참조하십시오 .

[signal] void QHeaderView::sectionDoubleClicked(int logicalIndex)

이 신호는 섹션을 더블클릭했을 때 발생합니다. 섹션의 논리적 인덱스는 logicalIndex 로 지정됩니다.

setSectionsClickable()도 참조하십시오 .

[signal] void QHeaderView::sectionEntered(int logicalIndex)

이 신호는 커서가 해당 섹션 위로 이동한 상태에서 마우스 왼쪽 버튼을 누르면 발생합니다. 섹션의 논리적 인덱스는 logicalIndex 로 지정됩니다.

setSectionsClickable() 및 sectionPressed()도 참조하십시오 .

[signal] void QHeaderView::sectionHandleDoubleClicked(int logicalIndex)

이 신호는 섹션을 더블 클릭했을 때 발생합니다. 섹션의 논리적 인덱스는 logicalIndex 로 지정됩니다.

setSectionsClickable()도 참조하십시오 .

[signal] void QHeaderView::sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex)

이 신호는 섹션이 이동될 때 발생합니다. 섹션의 논리 인덱스는 logicalIndex 로, 이전 인덱스는 oldVisualIndex 로, 새로운 인덱스 위치는 newVisualIndex 로 지정됩니다.

moveSection()도 참조하십시오 .

int QHeaderView::sectionPosition(int logicalIndex) const

지정된 logicalIndex 의 섹션 위치를 반환하며, 섹션이 숨겨져 있는 경우 -1을 반환합니다. 위치는 보이는 첫 번째 항목의 왼쪽 상단 모서리에서 logicalIndex 속성이 설정된 항목의 왼쪽 상단 모서리까지의 픽셀 단위로 측정됩니다. 수평 헤더의 경우 x축을 따라, 수직 헤더의 경우 y축을 따라 측정됩니다.

sectionViewportPosition()도 참조하십시오 .

[signal] void QHeaderView::sectionPressed(int logicalIndex)

이 신호는 섹션이 눌렸을 때 발생합니다. 해당 섹션의 논리적 인덱스는 ` logicalIndex`로 지정됩니다.

setSectionsClickable()도 참조하십시오 .

QHeaderView::ResizeMode QHeaderView::sectionResizeMode(int logicalIndex) const

주어진 ` logicalIndex`로 지정된 섹션에 적용되는 크기 조정 모드를 반환합니다.

setSectionResizeMode()도 참조하십시오 .

[signal] void QHeaderView::sectionResized(int logicalIndex, int oldSize, int newSize)

이 신호는 섹션의 크기가 조정될 때 발생합니다. 섹션의 논리 번호는 logicalIndex 로, 이전 크기는 oldSize 로, 새로운 크기는 newSize 로 지정됩니다.

resizeSection()도 참조하십시오 .

int QHeaderView::sectionSize(int logicalIndex) const

지정된 logicalIndex 의 너비(또는 세로 방향 헤더의 경우 높이)를 반환합니다.

length(), setSectionResizeMode(), defaultSectionSize()도 참조하십시오 .

[virtual protected] QSize QHeaderView::sectionSizeFromContents(int logicalIndex) const

주어진 ` logicalIndex`로 지정된 섹션의 내용 크기를 반환합니다.

defaultSectionSize()도 참조하십시오 .

int QHeaderView::sectionSizeHint(int logicalIndex) const

logicalIndex 로 지정된 섹션에 적합한 크기 힌트를 반환합니다.

Qt::SizeHintRole

sizeHint(), defaultSectionSize(), minimumSectionSize(), maximumSectionSize()도 참조하십시오 .

int QHeaderView::sectionViewportPosition(int logicalIndex) const

지정된 ` logicalIndex`의 섹션 뷰포트 위치를 반환합니다.

단면이 숨겨져 있는 경우, 반환 값은 정의되지 않습니다.

sectionPosition() 및 isSectionHidden()도 참조하십시오 .

[protected slot] void QHeaderView::sectionsAboutToBeRemoved(const QModelIndex &parent, int logicalFirst, int logicalLast)

이 슬롯은 parent 에서 섹션이 제거될 때 호출됩니다. logicalFirst 및 logicalLast 는 섹션이 제거된 위치를 나타냅니다.

단 하나의 섹션만 제거된 경우, logicalFirst 와 logicalLast 는 동일합니다.

bool QHeaderView::sectionsClickable() const

secectionsClickable를 반환합니다.

참고: sectionsClickable 속성에 대한게터 함수입니다.

setSectionsClickable()도 참조하십시오 .

bool QHeaderView::sectionsHidden() const

헤더의 섹션이 숨겨져 있으면 true 를 반환하고, 그렇지 않으면 false를 반환합니다.

setSectionHidden()도 참조하십시오 .

[protected slot] void QHeaderView::sectionsInserted(const QModelIndex &parent, int logicalFirst, int logicalLast)

이 슬롯은 parent 에 섹션이 삽입될 때 호출됩니다. logicalFirst 및 logicalLast 인덱스는 새로운 섹션이 삽입된 위치를 나타냅니다.

섹션이 하나만 삽입된 경우, logicalFirst 과 logicalLast 은 동일합니다.

bool QHeaderView::sectionsMovable() const

sectionsMovable을 반환합니다.

참고: sectionsMovable 속성에 대한게터 함수입니다.

setSectionsMovable()도 참조하십시오 .

bool QHeaderView::sectionsMoved() const

헤더의 섹션이 이동된 경우 ` true `를 반환하고, 그렇지 않은 경우 `false`를 반환합니다.

moveSection()도 참조하십시오 .

[override virtual] void QHeaderView::setModel(QAbstractItemModel *model)

QAbstractItemView::setModel(QAbstractItemModel *model)을 재구현합니다.

[slot] void QHeaderView::setOffset(int offset)

헤더의 오프셋을 offset 로 설정합니다.

offset() 및 length()도 참조하십시오 .

[slot] void QHeaderView::setOffsetToLastSection()

마지막 섹션이 보이도록 오프셋을 설정합니다.

setOffset(), sectionPosition(), setOffsetToSectionPosition()도 참조하십시오 .

[slot] void QHeaderView::setOffsetToSectionPosition(int visualSectionNumber)

지정된 visualSectionNumber 위치에서 섹션의 시작 지점까지의 오프셋을 설정합니다. visualSectionNumber 는 hiddenSections를 고려하지 않았을 때 실제로 표시되는 섹션입니다. 이는 visualIndex()과 항상 일치하는 것은 아닙니다.

setOffset() 및 sectionPosition()도 참조하십시오 .

void QHeaderView::setResizeContentsPrecision(int precision)

ResizeToContents 가 사용될 때 QHeaderView 가 크기를 얼마나 정밀하게 계산할지 설정합니다. 값이 낮을수록 정확도는 떨어지지만 자동 크기 조정이 빠르게 이루어지며, 값이 높을수록 더 정확한 크기 조정이 가능하지만 속도가 느려질 수 있습니다.

precision 에 지정된 숫자는 권장 크기를 계산할 때 고려해야 할 섹션의 수를 나타냅니다.

기본값은 1000이며, 이는 자동 크기 조정이 적용된 가로 열이 크기 조정 시 계산에 최대 1000개의 행을 고려함을 의미합니다.

특수 값 0은 보이는 영역만 고려함을 의미합니다. 특수 값 -1은 모든 요소를 고려함을 의미합니다.

이 값은 QTableView::sizeHintForColumn(), QTableView::sizeHintForRow() 및 QTreeView::sizeHintForColumn()에서 사용됩니다. 이러한 함수를 재구현하면 이 함수가 효과를 발휘하지 않을 수 있습니다.

resizeContentsPrecision(), setSectionResizeMode(), resizeSections(), QTableView::sizeHintForColumn(), QTableView::sizeHintForRow() 및 QTreeView::sizeHintForColumn()도 참조하십시오 .

void QHeaderView::setSectionHidden(int logicalIndex, bool hide)

hide 가 true인 경우, logicalIndex 로 지정된 섹션은 숨겨지며, 그렇지 않은 경우 해당 섹션이 표시됩니다.

isSectionHidden() 및 hiddenSectionCount()도 참조하십시오 .

void QHeaderView::setSectionResizeMode(QHeaderView::ResizeMode mode)

헤더의 크기 조정 방식에 대한 제약 조건을, 지정된 mode 에 설명된 대로 설정합니다.

sectionResizeMode(), length() 및 sectionResized()도 참조하십시오 .

void QHeaderView::setSectionResizeMode(int logicalIndex, QHeaderView::ResizeMode mode)

헤더의 ` logicalIndex `로 지정된 섹션의 크기 조정 방식을, 주어진 ` mode`에 설명된 대로 제한합니다. 이 함수가 호출될 때 논리적 인덱스가 존재해야 합니다.

참고: stretchLastSection 속성이 true로 설정된 경우,이 설정은 마지막 섹션에 대해서는 무시됩니다. 이는 QTreeView 에서 제공하는 가로 헤더의 기본값입니다.

setStretchLastSection() 및 resizeContentsPrecision()도 참조하십시오 .

void QHeaderView::setSectionsClickable(bool clickable)

sectionsClickable 을 clickable 로 설정하십시오.

참고: sectionsClickable 속성에 대한세터 함수입니다.

sectionsClickable()도 참조하십시오 .

void QHeaderView::setSectionsMovable(bool movable)

sectionsMovable 를 movable 로 설정합니다.

참고: sectionsMovable 속성에 대한세터 함수입니다.

sectionsMovable()도 참조하십시오 .

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

QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags)를 재구현합니다.

지정된 ` flags`에 따라 주어진 ` rect ` 내의 항목을 선택합니다.

기초 클래스의 구현은 아무 작업도 수행하지 않습니다.

void QHeaderView::setSortIndicator(int logicalIndex, Qt::SortOrder order)

주어진 ` logicalIndex `로 지정된 섹션에 대해 ` order`로 지정된 방향으로 정렬 표시기를 설정하고, 정렬 표시기가 표시되었던 다른 모든 섹션에서 해당 표시기를 제거합니다.

logicalIndex -1을 지정할 수 있으며, 이 경우 정렬 표시기가 표시되지 않고 모델은 정렬되지 않은 원래 순서로 돌아갑니다. 모든 모델이 이 기능을 지원하는 것은 아니며, 이 경우 모델이 중단될 수도 있습니다.

sortIndicatorSection() 및 sortIndicatorOrder()도 참조하십시오 .

[override virtual] void QHeaderView::setVisible(bool v)

QWidget::visible 속성에 대한 액세스 함수를 다시 구현합니다.

void QHeaderView::showSection(int logicalIndex)

logicalIndex 로 지정된 섹션을 표시합니다.

hideSection(), isSectionHidden(), hiddenSectionCount() 및 setSectionHidden()도 참조하십시오 .

[override virtual] QSize QHeaderView::sizeHint() const

QAbstractScrollArea::sizeHint() const를 재구현합니다.

이 헤더에 적합한 크기 힌트를 반환합니다.

sectionSizeHint()도 참조하십시오 .

[signal] void QHeaderView::sortIndicatorChanged(int logicalIndex, Qt::SortOrder order)

이 신호는 정렬 표시기가 포함된 섹션이나 지정된 정렬 순서가 변경될 때 발생합니다. 섹션의 논리 인덱스는 logicalIndex 로 지정되며, 정렬 순서는 order 로 지정됩니다.

setSortIndicator()도 참조하십시오 .

Qt::SortOrder QHeaderView::sortIndicatorOrder() const

정렬 표시기의 순서를 반환합니다. 정렬 표시기가 설정된 섹션이 없는 경우, 이 함수의 반환값은 정의되지 않습니다.

setSortIndicator() 및 sortIndicatorSection()도 참조하십시오 .

int QHeaderView::sortIndicatorSection() const

정렬 표시기가 설정된 섹션의 논리적 인덱스를 반환합니다. 기본적으로 이는 섹션 0입니다.

setSortIndicator(), sortIndicatorOrder(), setSortIndicatorShown()도 참조하십시오 .

int QHeaderView::stretchSectionCount() const

'stretch' 크기 조정 모드로 설정된 섹션의 수를 반환합니다. 뷰에서 이 메서드는 뷰의 기하학적 구조가 변경될 때 헤더 뷰가 섹션의 크기를 조정해야 하는지 확인하는 데 사용할 수 있습니다.

stretchLastSection도 참조하십시오 .

void QHeaderView::swapSections(int first, int second)

시각 인덱스 first 에 있는 섹션을 시각 인덱스 second 에 있는 섹션과 바꿉니다.

moveSection()도 참조하십시오 .

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

QAbstractItemView::verticalOffset() const를 재구현합니다.

헤더의 수직 오프셋을 반환합니다. 수평 헤더의 경우 이 값은 0입니다.

offset()도 참조하십시오 .

[override virtual protected] bool QHeaderView::viewportEvent(QEvent *e)

QAbstractItemView::viewportEvent(QEvent *event)를 재구현합니다.

int QHeaderView::visualIndex(int logicalIndex) const

주어진 ` logicalIndex`로 지정된 섹션의 시각적 인덱스 위치를 반환하거나, 그렇지 않은 경우 -1을 반환합니다.

숨겨진 섹션도 유효한 시각적 인덱스를 가지고 있습니다.

logicalIndex()도 참조하십시오 .

int QHeaderView::visualIndexAt(int position) const

뷰포트 내에서 지정된 position 를 포함하는 섹션의 시각적 인덱스를 반환합니다.

logicalIndexAt()도 참조하십시오 .

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