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 ¤t, 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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QHeaderView::Interactive | 0 | Der 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::Fixed | 2 | Der 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::Stretch | 1 | QHeaderView 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::ResizeToContents | 3 | QHeaderView 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:
| Konstante | Wert | Beschreibung |
|---|---|---|
QHeaderView::Custom | Fixed | Verwenden 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 ¤t, const QModelIndex &old)
Implementiert: ` QAbstractItemView::currentChanged` (const QModelIndex ¤t, 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(); });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.
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.