Auf dieser Seite

QHeaderView Class

Die Klasse „QHeaderView“ stellt eine Kopfzeile oder eine Kopfsäule für Elementansichten bereit. Mehr...

Kopfzeile: #include <QHeaderView>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Erbt von: QAbstractItemView

Öffentliche Typen

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

Eigenschaften

Öffentliche Funktionen

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

Neu implementierte öffentliche Funktionen

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

Öffentliche Slots

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

Signale

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)

Geschützte Funktionen

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

Neu implementierte geschützte Funktionen

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

Geschützte Slots

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

Ausführliche Beschreibung

Eine `QHeaderView` zeigt die Kopfzeilen an, die in Elementansichten wie den Klassen ` QTableView ` und ` QTreeView ` verwendet werden. Sie ersetzt die Klasse ` QHeader ` aus Qt3, die zuvor für denselben Zweck verwendet wurde, nutzt jedoch die Model-View-Architektur von Qt, um die Konsistenz mit den Elementansichtsklassen zu gewährleisten.

Die Klasse `QHeaderView` gehört zu den Model/View-Klassen und ist Teil des Model/View-Frameworks von Qt.

Die Kopfzeile ruft die Daten für jeden Abschnitt mithilfe der Funktion ` QAbstractItemModel::headerData()` aus dem Modell ab. Sie können die Daten mit der Funktion ` QAbstractItemModel::setHeaderData()` festlegen.

Jede Kopfzeile verfügt über eine ` orientation()`-Methode und eine Reihe von Abschnitten, die über die Funktion ` count()` festgelegt werden. Ein Abschnitt bezieht sich auf einen Teil der Kopfzeile – je nach Ausrichtung entweder eine Zeile oder eine Spalte.

Abschnitte können mithilfe von ` moveSection()` und ` resizeSection()` verschoben und in ihrer Größe angepasst werden; sie können außerdem mit ` hideSection()` und ` showSection()` ein- und ausgeblendet werden.

Jeder Abschnitt einer Kopfzeile wird durch eine Abschnitts-ID beschrieben, die durch seine `section()` festgelegt wird, und kann sich an einer bestimmten ` visualIndex()` in der Kopfzeile befinden. Einem Abschnitt kann mit ` setSortIndicator()` ein Sortierindikator zugewiesen werden; dieser gibt an, ob die Elemente in der zugehörigen Elementansicht in der vom Abschnitt vorgegebenen Reihenfolge sortiert werden.

Bei einer horizontalen Kopfzeile entspricht der Abschnitt einer Spalte im Modell, bei einer vertikalen Kopfzeile entspricht der Abschnitt einer Zeile im Modell.

Verschieben von Kopfzeilenabschnitten

Eine Kopfzeile kann mit ` setSectionsMovable()` an ihrer Position fixiert oder verschiebbar gemacht werden. Mit ` setSectionsClickable()` kann sie anklickbar gemacht werden, und ihr Größenänderungsverhalten richtet sich nach ` setSectionResizeMode()`.

Hinweis: Ein Doppelklick auf eine Kopfzeile zum Ändern der Größe eines Abschnitts gilt nur für sichtbare Zeilen.

Eine Kopfzeile löst „ sectionMoved()“ aus, wenn der Benutzer einen Abschnitt verschiebt, „ sectionResized()“, wenn der Benutzer die Größe eines Abschnitts ändert, sowie „ sectionClicked()“ und „ sectionHandleDoubleClicked()“ als Reaktion auf Mausklicks. Eine Kopfzeile löst außerdem „ sectionCountChanged()“ aus.

Sie können einen Abschnitt mithilfe der Funktionen „ logicalIndex “() und „ logicalIndexAt “() identifizieren oder anhand seiner Indexposition mithilfe der Funktionen „ visualIndex “() und „ visualIndexAt “(). Der visuelle Index ändert sich, wenn ein Abschnitt verschoben wird, der logische Index bleibt jedoch unverändert.

Darstellung

QTableWidget und ` QTableView ` erzeugen Standard-Kopfzeilen. Wenn Sie möchten, dass die Kopfzeilen sichtbar sind, können Sie ` setVisible()` verwenden.

Nicht alle „ ItemDataRole“-Rollen wirken sich auf eine `QHeaderView` aus. Wenn Sie andere Rollen zeichnen möchten, können Sie `QHeaderView` unterklassen und ` paintEvent()` neu implementieren. `QHeaderView` berücksichtigt die folgenden Elementdatenrollen, sofern sie nicht im Konflikt mit dem Stil stehen (was bei Stilen vorkommen kann, die dem Desktop-Design folgen):

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

Hinweis: Jede Kopfzeile rendert die Daten für jeden Abschnitt selbst und ist nicht auf einen Delegaten angewiesen. Daher hat der Aufruf der Funktion ` setItemDelegate()` einer Kopfzeile keine Auswirkung.

Besondere Hinweise für sehr große Modelle

Die Headerview belegt pro Abschnitt 8 bis 16 Byte Speicher. Seit Qt 6.9 wird dieser Abschnittspeicher jedoch nur dann genutzt, wenn ein oder mehrere Abschnitte in ihrer Größe angepasst oder neu angeordnet werden. Das bedeutet, dass ein Modell Millionen von Abschnitten haben kann, ohne dass die `QHeaderView` eine proportionale und damit enorme Menge an Speicher verbraucht, solange keine Aufrufe von ` swapSections`, ` resizeSection`, ` hideSection`, ` moveSection` und ` stretchLastSection ` (zum Aktivieren) erfolgen. Um solche Aufrufe durch Benutzeraktionen zu vermeiden, sollte die Option „ resize mode “ auf „ Fixed “ gesetzt werden (ohne dies für bestimmte Indizes anzugeben, da dies den gegenteiligen Effekt hätte). Außerdem sollte verhindert werden, dass der Benutzer Abschnitte verschiebt, indem „ sectionsMovable “ deaktiviert bleibt.

Sicherheitsaspekte

Die Funktion „ restoreState()“ deserialisiert einen versionierten Binär-Blob, der die Spaltenreihenfolge, die Abschnittsgrößen, den Sortierindikator und den zugehörigen Ansichtsstatus beschreibt. Die Magic Number, die Version und die angegebene Gesamtlänge des Formats werden validiert, doch die deserialisierten visuellen und logischen Indizes sowie der Abschnitt des Sortierindikators werden nicht mit der tatsächlichen Abschnittsanzahl des Headers abgeglichen, bevor sie zur Indizierung interner Datenstrukturen verwendet werden.

Übergeben Sie an ` restoreState()` ausschließlich einen ` QByteArray `, der zuvor mit ` saveState()` erzeugt und von derselben oder einer kompatiblen Version Ihrer Anwendung persistiert wurde – typischerweise im Rahmen eines Round-Trips über ` QSettings`. Rufen Sie ` restoreState()` nicht mit Daten unbekannter oder nicht vertrauenswürdiger Herkunft auf, wie beispielsweise einer aus dem Netzwerk heruntergeladenen Datei, einer synchronisierten oder gemeinsam genutzten Konfigurationsdatei oder Daten, die von einer anderen, möglicherweise kompromittierten Anwendung bereitgestellt wurden.

Siehe auch Modell-/Ansichtsprogrammierung, QListView, QTableView, QTreeView, saveState() und restoreState().

Dokumentation zu den Mitgliedstypen

enum QHeaderView::ResizeMode

Der Größenanpassungsmodus legt das Verhalten der Kopfzeilenabschnitte fest. Er kann für die gesamte Kopfzeilenansicht oder für einzelne Abschnitte mithilfe von ` setSectionResizeMode()` festgelegt werden.

KonstanteWertBeschreibung
QHeaderView::Interactive0Der Benutzer kann die Größe des Abschnitts ändern. Die Größe des Abschnitts kann auch programmgesteuert mithilfe von ` resizeSection()` angepasst werden. Die Standardgröße des Abschnitts ist ` defaultSectionSize`. (Siehe auch ` cascadingSectionResizes`.)
QHeaderView::Fixed2Der Benutzer kann die Größe des Abschnitts nicht ändern. Die Größe des Abschnitts kann nur programmgesteuert mithilfe von ` resizeSection()` geändert werden. Die Standardgröße des Abschnitts ist ` defaultSectionSize`.
QHeaderView::Stretch1QHeaderView passt die Größe des Abschnitts automatisch an den verfügbaren Platz an. Die Größe kann weder vom Benutzer noch programmgesteuert geändert werden.
QHeaderView::ResizeToContents3QHeaderView passt die Größe des Abschnitts automatisch an seine optimale Größe an, basierend auf dem Inhalt der gesamten Spalte oder Zeile. Die Größe kann weder vom Benutzer noch programmgesteuert geändert werden. (Dieser Wert wurde in Version 4.2 eingeführt)

Die folgenden Werte sind veraltet:

KonstanteWertBeschreibung
QHeaderView::CustomFixedVerwenden Sie stattdessen „Fixed“.

Siehe auch „ setSectionResizeMode()“, „ stretchLastSection “ und „ minimumSectionSize “.

Dokumentation zur Eigenschaft

cascadingSectionResizes : bool

Diese Eigenschaft legt fest, ob die interaktive Größenanpassung auf die nachfolgenden Abschnitte übertragen wird, sobald der vom Benutzer angepasste Abschnitt seine Mindestgröße erreicht hat

Diese Eigenschaft wirkt sich nur auf Abschnitte aus, deren Größenänderungsmodus auf „ Interactive “ gesetzt ist.

Der Standardwert ist „false“.

Zugriffsfunktionen:

bool cascadingSectionResizes() const
void setCascadingSectionResizes(bool enable)

Siehe auch „ setSectionResizeMode()“.

defaultAlignment : Qt::Alignment

Diese Eigenschaft legt die Standardausrichtung des Textes in jedem Kopfbereich fest

Zugriffsfunktionen:

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

defaultSectionSize : int

Diese Eigenschaft enthält die Standardgröße der Kopfzeilenabschnitte vor der Größenanpassung.

Diese Eigenschaft wirkt sich nur auf Abschnitte aus, deren Größenanpassungsmodus auf „ Interactive “ oder „ Fixed “ eingestellt ist.

Standardmäßig ist der Wert dieser Eigenschaft stilabhängig. Wenn sich also der Stil ändert, wird diese Eigenschaft entsprechend aktualisiert. Der Aufruf von `setDefaultSectionSize()` stoppt die Aktualisierungen, der Aufruf von `resetDefaultSectionSize()` stellt das Standardverhalten wieder her.

Zugriffsfunktionen:

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

Siehe auch „ setSectionResizeMode()“ und „ minimumSectionSize “.

firstSectionMovable : bool

Diese Eigenschaft legt fest, ob die erste Spalte vom Benutzer verschoben werden kann

Diese Eigenschaft steuert, ob die erste Spalte vom Benutzer verschoben werden kann. In einem „ QTreeView “ enthält die erste Spalte die Baumstruktur und ist daher standardmäßig nicht verschiebbar, selbst wenn „ setSectionsMovable “ (true) gesetzt ist.

Sie kann wieder verschiebbar gemacht werden, beispielsweise bei flachen Listen ohne Baumstruktur, indem diese Methode aufgerufen wird. In einem solchen Szenario wird empfohlen, zusätzlich „ QTreeView::setRootIsDecorated “ (false) aufzurufen.

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

Die Einstellung auf „true“ hat keine Auswirkung, sofern nicht gleichzeitig „ setSectionsMovable “ (true) aufgerufen wird.

Zugriffsfunktionen:

bool isFirstSectionMovable() const
void setFirstSectionMovable(bool movable)

Siehe auch ` setSectionsMovable()`.

highlightSections : bool

Diese Eigenschaft gibt an, ob die Abschnitte, die ausgewählte Elemente enthalten, hervorgehoben sind

Standardmäßig ist diese Eigenschaft auf „ false “ gesetzt.

Zugriffsfunktionen:

bool highlightSections() const
void setHighlightSections(bool highlight)

maximumSectionSize : int

Diese Eigenschaft legt die maximale Größe der Kopfzeilenabschnitte fest.

Die maximale Abschnittsgröße ist die größte zulässige Abschnittsgröße. Der Standardwert für diese Eigenschaft ist 1048575, was gleichzeitig die größtmögliche Größe für einen Abschnitt darstellt. Wenn „maximum“ auf -1 gesetzt wird, wird der Wert auf die größte Abschnittsgröße zurückgesetzt.

Mit Ausnahme von „stretch“ wird diese Eigenschaft von allen resize modes

Access-Funktionen berücksichtigt:

int maximumSectionSize() const
void setMaximumSectionSize(int size)

Siehe auch „ setSectionResizeMode()“ und „ defaultSectionSize “.

minimumSectionSize : int

Diese Eigenschaft legt die Mindestgröße der Kopfzeilenabschnitte fest.

Die Mindestabschnittsgröße ist die kleinste zulässige Abschnittsgröße. Wenn die Mindestabschnittsgröße auf -1 gesetzt ist, verwendet QHeaderView die Größe „ font metrics “.

Diese Eigenschaft wird von allen „ resize modes “ berücksichtigt.

Zugriffsfunktionen:

int minimumSectionSize() const
void setMinimumSectionSize(int size)

Siehe auch „ setSectionResizeMode()“ und „ defaultSectionSize “.

sectionsClickable : bool

Enthält „ true “, wenn die Kopfzeile anklickbar ist; andernfalls „ false “. Eine anklickbare Kopfzeile könnte so eingerichtet werden, dass der Benutzer die Darstellung der Daten in der Ansicht in Bezug auf die Kopfzeile ändern kann.

Zugriffsfunktionen:

bool sectionsClickable() const
void setSectionsClickable(bool clickable)

Siehe auch sectionPressed() und setSortIndicatorShown().

sectionsMovable : bool

Wenn „ sectionsMovable “ auf „true“ gesetzt ist, können die Kopfzeilenabschnitte vom Benutzer verschoben werden; andernfalls sind sie fest an ihrer Position verankert.

Bei Verwendung in Kombination mit „ QTreeView “ ist die erste Spalte standardmäßig nicht verschiebbar (da sie die Baumstruktur enthält). Sie können sie mit „ setFirstSectionMovable “ (true) verschiebbar machen.

Zugriffsfunktionen:

bool sectionsMovable() const
void setSectionsMovable(bool movable)

Siehe auch ` sectionMoved()` und ` setFirstSectionMovable()`.

showSortIndicator : bool

Diese Eigenschaft legt fest, ob das Sortierkennzeichen angezeigt wird

Standardmäßig ist diese Eigenschaft auf „ false “ gesetzt.

Zugriffsfunktionen:

bool isSortIndicatorShown() const
void setSortIndicatorShown(bool show)

Siehe auch ` setSectionsClickable()`.

[since 6.1] sortIndicatorClearable : bool

Diese Eigenschaft legt fest, ob das Sortierkennzeichen durch mehrmaliges Klicken auf einen Abschnitt zurückgesetzt werden kann

Diese Eigenschaft steuert, ob der Benutzer die Sortiermarkierung in einem bestimmten Abschnitt durch mehrmaliges Klicken auf den Abschnitt entfernen kann. Normalerweise ändert ein Klick auf einen Abschnitt lediglich die Sortierreihenfolge für diesen Abschnitt. Wenn diese Eigenschaft auf „true“ gesetzt wird, wird die Sortiermarkierung nach dem Wechsel zwischen aufsteigender und absteigender Sortierung zurückgesetzt; dies stellt in der Regel die ursprüngliche Sortierung eines Modells wieder her.

Die Einstellung dieser Eigenschaft auf „true“ hat keine Auswirkung, es sei denn, „ sectionsClickable()“ ist ebenfalls „true“ (was bei bestimmten Ansichten die Standardeinstellung ist, z. B. „ QTableView “, oder automatisch gesetzt wird, wenn eine Ansicht sortierbar gemacht wird, z. B. durch den Aufruf von „ QTreeView::setSortingEnabled “).

Diese Aufzählung wurde in Qt 6.1 eingeführt.

Zugriffsfunktionen:

bool isSortIndicatorClearable() const
void setSortIndicatorClearable(bool clearable)

Notifier-Signal:

void sortIndicatorClearableChanged(bool clearable)

stretchLastSection : bool

Diese Eigenschaft gibt an, ob der zuletzt sichtbare Abschnitt in der Kopfzeile den gesamten verfügbaren Platz einnimmt

Der Standardwert ist „false“.

Hinweis: Die von QTreeView bereitgestellten horizontalen Kopfzeilen sind so konfiguriert, dass diese Eigenschaft auf „true“ gesetzt ist, wodurch sichergestellt wird, dass die Ansicht keinen der ihr für die Kopfzeile zugewiesenen Platz verschwendet. Wenn dieser Wert auf „true“ gesetzt ist, überschreibt diese Eigenschaft den für den letzten Abschnitt in der Kopfzeile festgelegten Größenanpassungsmodus.

Zugriffsfunktionen:

bool stretchLastSection() const
void setStretchLastSection(bool stretch)

Siehe auch ` setSectionResizeMode()`.

Dokumentation zu Mitgliedsfunktionen

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

Erstellt einen neuen generischen Header mit den angegebenen Attributen „ orientation “ und „ parent “.

[virtual noexcept] QHeaderView::~QHeaderView()

Löscht die Kopfzeile.

int QHeaderView::count() const

Gibt die Anzahl der Abschnitte im Header zurück.

Siehe auch „ sectionCountChanged()“ und „ length()“.

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

Implementiert: ` QAbstractItemView::currentChanged` (const QModelIndex &current, const QModelIndex &previous).

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

Umsetzt: ` QAbstractItemView::event(QEvent *event)`.

[signal] void QHeaderView::geometriesChanged()

Dieses Signal wird ausgesendet, wenn sich die Geometrien des Headers geändert haben.

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

Aktualisiert die geänderten Kopfzeilenabschnitte mit der angegebenen URL „ orientation “, von „ logicalFirst “ bis einschließlich „ logicalLast “.

int QHeaderView::hiddenSectionCount() const

Gibt die Anzahl der im Kopfbereich ausgeblendeten Abschnitte zurück.

Siehe auch setSectionHidden() und isSectionHidden().

void QHeaderView::hideSection(int logicalIndex)

Blendet den durch logicalIndex angegebenen Abschnitt aus.

Siehe auch showSection(), isSectionHidden(), hiddenSectionCount() und setSectionHidden().

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

Implementiert neu: ` QAbstractItemView::horizontalOffset()` const.

Gibt den horizontalen Versatz der Kopfzeile zurück. Bei vertikalen Kopfzeilen ist dieser Wert 0.

Siehe auch offset().

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

Initialisieren Sie „ option “ mit den Werten aus dieser Datei: QHeaderView. Diese Methode ist für Unterklassen nützlich, wenn diese ein „ QStyleOptionHeader “ benötigen, aber nicht alle Informationen selbst eingeben möchten.

Siehe auch ` QStyleOption::initFrom()` und ` initStyleOptionForIndex()`.

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

Initialisiert den Stil „ option “ anhand der angegebenen „ logicalIndex “. Diese Funktion wird von der Standardimplementierung von „ paintSection “ aufgerufen, nachdem „ initStyleOption “ aufgerufen wurde.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch ` paintSection()` und ` initStyleOption()`.

bool QHeaderView::isSectionHidden(int logicalIndex) const

Gibt „ true “ zurück, wenn der durch „ logicalIndex “ angegebene Abschnitt für den Benutzer explizit ausgeblendet ist; andernfalls wird „ false “ zurückgegeben.

Siehe auch hideSection(), showSection(), setSectionHidden() und hiddenSectionCount().

int QHeaderView::length() const

Gibt die Länge entlang der Ausrichtung des Headers zurück.

Siehe auch sizeHint(), setSectionResizeMode() und offset().

int QHeaderView::logicalIndex(int visualIndex) const

Gibt den „logicalIndex“ für den Abschnitt an der angegebenen „ visualIndex “-Position zurück oder -1, wenn „ visualIndex “ < 0 oder „ visualIndex “ >= „ QHeaderView::count “ ().

Beachten Sie, dass der „ visualIndex “ nicht von ausgeblendeten Abschnitten beeinflusst wird.

Siehe auch „ visualIndex()“ und „ sectionPosition()“.

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

Gibt den logischen Index des Abschnitts an der in „ pos “ angegebenen Position zurück. Ist die Kopfzeile horizontal ausgerichtet, wird die x-Koordinate verwendet; andernfalls wird die y-Koordinate zur Ermittlung des logischen Index herangezogen.

Siehe auch sectionPosition().

int QHeaderView::logicalIndexAt(int position) const

Gibt den Ausschnitt zurück, der die angegebene Koordinaten position im Ansichtsbereich abdeckt.

Siehe auch „ visualIndexAt()“ und „ isSectionHidden()“.

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

Gibt den logischen Index des Abschnitts an der angegebenen Koordinate zurück. Befindet sich die Kopfzeile horizontal, wird „ x “ verwendet; andernfalls wird „ y “ verwendet, um den logischen Index zu ermitteln.

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

Implementiert: QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event).

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

Implementiert: ` QAbstractItemView::mouseMoveEvent` (`QMouseEvent *event`).

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

Implementiert: QAbstractItemView::mousePressEvent(QMouseEvent *event).

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

Implementiert: ` QAbstractItemView::mouseReleaseEvent` (`QMouseEvent *event`).

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

Verschiebt den Abschnitt am visuellen Index from so, dass er den visuellen Index to einnimmt.

Siehe auch sectionsMoved().

int QHeaderView::offset() const

Gibt den Versatz der Kopfzeile zurück: Dabei handelt es sich um das am weitesten links (bzw. bei vertikalen Kopfzeilen am weitesten oben) liegende sichtbare Pixel der Kopfzeile.

Siehe auch „ setOffset()“.

Qt::Orientation QHeaderView::orientation() const

Gibt die Ausrichtung der Kopfzeile zurück.

Siehe auch „ Qt::Orientation “.

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

Umsetzt: ` QAbstractScrollArea::paintEvent` (`QPaintEvent *event`).

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

Zeichnet den durch die angegebene ` logicalIndex` festgelegten Bereich unter Verwendung der angegebenen ` painter ` und ` rect`.

Normalerweise müssen Sie diese Funktion nicht aufrufen.

[override virtual] void QHeaderView::reset()

Implementiert: QAbstractItemView::reset().

int QHeaderView::resizeContentsPrecision() const

Gibt an, mit welcher Genauigkeit „ QHeaderView “ auf „ ResizeToContents “ berechnet wird.

Siehe auch setResizeContentsPrecision() und setSectionResizeMode().

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

Passen Sie die Größe des durch logicalIndex angegebenen Abschnitts auf size an (in Pixeln). Der Parameter „size“ muss einen Wert größer oder gleich Null haben. Ein Wert von Null wird jedoch nicht empfohlen. In diesem Fall sollte stattdessen hideSection verwendet werden.

Siehe auch sectionResized(), sectionSize() und hideSection().

[protected slot] void QHeaderView::resizeSections()

Passen Sie die Größe der Abschnitte entsprechend ihren Größenangaben an. Normalerweise müssen Sie diese Funktion nicht aufrufen.

Hinweis: Dieser Slot ist überladen. So stellen Sie eine Verbindung zu diesem Slot her:

// 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(); });
Weitere Beispiele und Vorgehensweisen finden Sie unter „An überladene Slots anbinden“.

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

Passen Sie die Größe der Abschnitte entsprechend der angegebenen „ mode “ an und ignorieren Sie dabei den aktuellen Größenanpassungsmodus.

Siehe auch ` sectionResized()`.

bool QHeaderView::restoreState(const QByteArray &state)

Stellt den „ state “ dieser Header-Ansicht wieder her. Diese Funktion gibt „ true “ zurück, wenn der Zustand wiederhergestellt wurde; andernfalls gibt sie „false“ zurück.

Siehe auch „ saveState()“.

QByteArray QHeaderView::saveState() const

Speichert den aktuellen Zustand dieser Header-Ansicht.

Um den gespeicherten Zustand wiederherzustellen, übergeben Sie den Rückgabewert an ` restoreState()`.

Siehe auch ` restoreState()`.

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

Dieses Signal wird ausgelöst, wenn auf einen Abschnitt geklickt wird. Der logische Index des Abschnitts wird durch „ logicalIndex “ angegeben.

Beachten Sie, dass auch das Signal ` sectionPressed ` ausgelöst wird.

Siehe auch „ setSectionsClickable “ () und „ sectionPressed “ ().

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

Dieses Signal wird ausgelöst, wenn sich die Anzahl der Abschnitte ändert, d. h. wenn Abschnitte hinzugefügt oder gelöscht werden. Die ursprüngliche Anzahl wird durch oldCount angegeben, die neue Anzahl durch newCount.

Siehe auch count(), length() und headerDataChanged().

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

Dieses Signal wird ausgelöst, wenn ein Abschnitt doppelt angeklickt wird. Der logische Index des Abschnitts wird durch logicalIndex angegeben.

Siehe auch setSectionsClickable().

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

Dieses Signal wird ausgelöst, wenn der Cursor über den Abschnitt bewegt und die linke Maustaste gedrückt wird. Der logische Index des Abschnitts wird durch logicalIndex angegeben.

Siehe auch „ setSectionsClickable()“ und „ sectionPressed()“.

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

Dieses Signal wird ausgelöst, wenn ein Abschnitt doppelt angeklickt wird. Der logische Index des Abschnitts wird durch ` logicalIndex` angegeben.

Siehe auch setSectionsClickable().

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

Dieses Signal wird ausgelöst, wenn ein Abschnitt verschoben wird. Der logische Index des Abschnitts wird durch logicalIndex angegeben, der alte Index durch oldVisualIndex und die neue Indexposition durch newVisualIndex.

Siehe auch moveSection().

int QHeaderView::sectionPosition(int logicalIndex) const

Gibt die Abschnittsposition des angegebenen ` logicalIndex` zurück oder -1, wenn der Abschnitt ausgeblendet ist. Die Position wird in Pixeln gemessen, und zwar von der linken oberen Ecke des ersten sichtbaren Elements bis zur linken oberen Ecke des Elements mit ` logicalIndex`. Die Messung erfolgt entlang der x-Achse bei horizontalen Kopfzeilen und entlang der y-Achse bei vertikalen Kopfzeilen.

Siehe auch ` sectionViewportPosition()`.

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

Dieses Signal wird ausgelöst, wenn ein Abschnitt gedrückt wird. Der logische Index des Abschnitts wird durch „ logicalIndex “ angegeben.

Siehe auch setSectionsClickable().

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

Gibt den Größenänderungsmodus zurück, der für den durch die angegebene ` logicalIndex` angegebenen Abschnitt gilt.

Siehe auch ` setSectionResizeMode()` .

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

Dieses Signal wird ausgelöst, wenn die Größe eines Abschnitts geändert wird. Die logische Nummer des Abschnitts wird durch logicalIndex angegeben, die alte Größe durch oldSize und die neue Größe durch newSize.

Siehe auch resizeSection().

int QHeaderView::sectionSize(int logicalIndex) const

Gibt die Breite (bzw. bei vertikalen Kopfzeilen die Höhe) des angegebenen ` logicalIndex` zurück.

Siehe auch length(), setSectionResizeMode() und defaultSectionSize().

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

Gibt die Größe des Inhalts des durch die angegebene ` logicalIndex` angegebenen Abschnitts zurück.

Siehe auch defaultSectionSize().

int QHeaderView::sectionSizeHint(int logicalIndex) const

Gibt einen geeigneten Größenhinweis für den durch logicalIndex angegebenen Abschnitt zurück.

Qt::SizeHintRole

Siehe auch sizeHint(), defaultSectionSize(), minimumSectionSize() und maximumSectionSize().

int QHeaderView::sectionViewportPosition(int logicalIndex) const

Gibt die Position des Schnitt-Viewports des angegebenen „ logicalIndex “ zurück.

Ist der Abschnitt ausgeblendet, ist der Rückgabewert undefiniert.

Siehe auch „ sectionPosition()“ und „ isSectionHidden()“.

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

Dieser Slot wird aufgerufen, wenn Abschnitte aus der Datei „ parent “ entfernt werden. „ logicalFirst “ und „ logicalLast “ geben an, wo die Abschnitte entfernt wurden.

Wird nur ein Abschnitt entfernt, sind logicalFirst und logicalLast identisch.

bool QHeaderView::sectionsClickable() const

Gibt die Abschnitte „Clickable“ zurück.

Hinweis: Getter -Funktion für die Eigenschaft „sectionsClickable“.

Siehe auch „ setSectionsClickable()“.

bool QHeaderView::sectionsHidden() const

Gibt „ true “ zurück, wenn Abschnitte im Header ausgeblendet wurden; andernfalls wird „false“ zurückgegeben;

Siehe auch ` setSectionHidden()`.

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

Dieser Slot wird aufgerufen, wenn Abschnitte in die Datei „ parent “ eingefügt werden. Die Indizes „ logicalFirst “ und „ logicalLast “ geben an, an welcher Stelle die neuen Abschnitte eingefügt wurden.

Wird nur ein Abschnitt eingefügt, sind „ logicalFirst “ und „ logicalLast “ identisch.

bool QHeaderView::sectionsMovable() const

Gibt die Abschnitte von „Movable“ zurück.

Hinweis: Getter -Funktion für die Eigenschaft „sectionsMovable“.

Siehe auch „ setSectionsMovable()“.

bool QHeaderView::sectionsMoved() const

Gibt „ true “ zurück, wenn Abschnitte im Header verschoben wurden; andernfalls wird „false“ zurückgegeben;

Siehe auch ` moveSection()`.

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

Implementiert: ` QAbstractItemView::setModel(QAbstractItemModel *model)`.

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

Setzt den Versatz der Kopfzeile auf offset.

Siehe auch offset() und length().

[slot] void QHeaderView::setOffsetToLastSection()

Legt den Versatz fest, um den letzten Abschnitt sichtbar zu machen.

Siehe auch setOffset(), sectionPosition() und setOffsetToSectionPosition().

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

Setzt den Versatz zum Anfang des Abschnitts unter der angegebenen visualSectionNumber. visualSectionNumber ist der tatsächlich sichtbare Abschnitt, wenn hiddenSections nicht berücksichtigt werden. Dies entspricht nicht immer dem Wert von visualIndex().

Siehe auch setOffset() und sectionPosition().

void QHeaderView::setResizeContentsPrecision(int precision)

Legt fest, wie genau „ QHeaderView “ die Größe berechnen soll, wenn „ ResizeToContents “ verwendet wird. Ein niedriger Wert sorgt für eine weniger genaue, aber schnelle automatische Größenanpassung, während ein höherer Wert eine genauere Größenanpassung ermöglicht, die jedoch langsam sein kann.

Die Zahl „ precision “ gibt an, wie viele Abschnitte bei der Berechnung der bevorzugten Größe berücksichtigt werden sollen.

Der Standardwert ist 1000, was bedeutet, dass bei einer horizontalen Spalte mit automatischer Größenanpassung bei der Berechnung maximal 1000 Zeilen berücksichtigt werden.

Der Sonderwert 0 bedeutet, dass nur der sichtbare Bereich berücksichtigt wird. Der Sonderwert -1 bedeutet, dass alle Elemente berücksichtigt werden.

Dieser Wert wird in den Funktionen „ QTableView::sizeHintForColumn()“, „ QTableView::sizeHintForRow()“ und „ QTreeView::sizeHintForColumn()“ verwendet. Durch eine Neuimplementierung dieser Funktionen kann die Wirkung dieser Funktion aufgehoben werden.

Siehe auch resizeContentsPrecision(), setSectionResizeMode(), resizeSections(), QTableView::sizeHintForColumn(), QTableView::sizeHintForRow() und QTreeView::sizeHintForColumn().

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

Wenn „ hide “ wahr ist, wird der durch „ logicalIndex “ angegebene Abschnitt ausgeblendet; andernfalls wird der Abschnitt angezeigt.

Siehe auch isSectionHidden() und hiddenSectionCount().

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

Legt die Einschränkungen für die Größenänderung der Kopfzeile so fest, wie sie in der angegebenen Datei „ mode “ beschrieben sind.

Siehe auch „ sectionResizeMode()“, „ length()“ und „ sectionResized()“.

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

Legt fest, dass die Größenänderung des durch „ logicalIndex “ in der Kopfzeile angegebenen Abschnitts auf die durch den angegebenen „ mode “ beschriebenen Werte beschränkt wird. Der logische Index sollte zum Zeitpunkt des Aufrufs dieser Funktion vorhanden sein.

Hinweis: Diese Einstellung wird für den letzten Abschnitt ignoriert, wenn die Eigenschaft „ stretchLastSection “ auf „true“ gesetzt ist. Dies ist die Standardeinstellung für die von „ QTreeView “ bereitgestellten horizontalen Kopfzeilen.

Siehe auch setStretchLastSection() und resizeContentsPrecision().

void QHeaderView::setSectionsClickable(bool clickable)

Setzen Sie „ sectionsClickable “ auf „ clickable “.

Hinweis: Setter -Funktion für die Eigenschaft ` sectionsClickable`.

Siehe auch sectionsClickable().

void QHeaderView::setSectionsMovable(bool movable)

Setzt „ sectionsMovable “ auf „ movable “.

Hinweis: Setter -Funktion für die Eigenschaft ` sectionsMovable`.

Siehe auch sectionsMovable().

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

Umsetzung von: QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags).

Wählt die Elemente im angegebenen ` rect ` gemäß den angegebenen ` flags` aus.

Die Implementierung der Basisklasse führt keine Aktion aus.

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

Setzt die Sortiermarkierung für den durch die angegebene ` logicalIndex ` festgelegten Abschnitt in die durch ` order` angegebene Richtung und entfernt die Sortiermarkierung aus allen anderen Abschnitten, in denen sie angezeigt wurde.

logicalIndex Der Wert kann -1 sein; in diesem Fall wird kein Sortierindikator angezeigt und das Modell kehrt zu seiner natürlichen, unsortierten Reihenfolge zurück. Beachten Sie, dass nicht alle Modelle dies unterstützen und in diesem Fall sogar abstürzen können.

Siehe auch sortIndicatorSection() und sortIndicatorOrder().

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

Implementiert eine Zugriffsfunktion für die Eigenschaft „ QWidget::visible “ neu.

void QHeaderView::showSection(int logicalIndex)

Zeigt den Abschnitt an, der durch logicalIndex angegeben ist.

Siehe auch hideSection(), isSectionHidden(), hiddenSectionCount() und setSectionHidden().

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

Implementiert neu: ` QAbstractScrollArea::sizeHint()` const.

Gibt einen geeigneten Größenhinweis für diesen Header zurück.

Siehe auch sectionSizeHint().

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

Dieses Signal wird ausgelöst, wenn der Abschnitt, der das Sortierkennzeichen enthält, oder die angegebene Reihenfolge geändert wird. Der logische Index des Abschnitts wird durch logicalIndex angegeben, und die Sortierreihenfolge wird durch order angegeben.

Siehe auch setSortIndicator().

Qt::SortOrder QHeaderView::sortIndicatorOrder() const

Gibt die Reihenfolge für das Sortierkennzeichen zurück. Wenn kein Abschnitt ein Sortierkennzeichen hat, ist der Rückgabewert dieser Funktion undefiniert.

Siehe auch setSortIndicator() und sortIndicatorSection().

int QHeaderView::sortIndicatorSection() const

Gibt den logischen Index des Abschnitts zurück, der über ein Sortierkennzeichen verfügt. Standardmäßig ist dies Abschnitt 0.

Siehe auch setSortIndicator(), sortIndicatorOrder() und setSortIndicatorShown().

int QHeaderView::stretchSectionCount() const

Gibt die Anzahl der Abschnitte zurück, für die der Größenanpassungsmodus „stretch“ eingestellt ist. In Ansichten kann dies verwendet werden, um festzustellen, ob die Headerview die Größe der Abschnitte anpassen muss, wenn sich die Geometrie der Ansicht ändert.

Siehe auch stretchLastSection.

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

Tauscht den Abschnitt am visuellen Index first mit dem Abschnitt am visuellen Index second aus.

Siehe auch moveSection().

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

Implementiert neu: ` QAbstractItemView::verticalOffset()` const.

Gibt den vertikalen Versatz der Kopfzeile zurück. Bei horizontalen Kopfzeilen ist dieser Wert 0.

Siehe auch offset().

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

Umsetzt: ` QAbstractItemView::viewportEvent(QEvent *event)`.

int QHeaderView::visualIndex(int logicalIndex) const

Gibt die Position des visuellen Indexes des durch die angegebene ` logicalIndex` angegebenen Abschnitts zurück oder andernfalls -1.

Auch ausgeblendete Abschnitte verfügen weiterhin über gültige visuelle Indizes.

Siehe auch ` logicalIndex()`.

int QHeaderView::visualIndexAt(int position) const

Gibt den visuellen Index des Abschnitts zurück, der die angegebene position im Ansichtsbereich abdeckt.

Siehe auch ` 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.