QAbstractScrollArea Class

Das QAbstractScrollArea-Widget bietet einen Bildlaufbereich mit bedarfsgesteuerten Bildlaufleisten. Mehr...

Kopfzeile: #include <QAbstractScrollArea>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Vererbt: QFrame
Vererbt von:

QAbstractItemView, QGraphicsView, QMdiArea, QPlainTextEdit, QScrollArea, und QTextEdit

Öffentliche Typen

enum SizeAdjustPolicy { AdjustIgnored, AdjustToContents, AdjustToContentsOnFirstShow }

Eigenschaften

Öffentliche Funktionen

QAbstractScrollArea(QWidget *parent = nullptr)
virtual ~QAbstractScrollArea()
void addScrollBarWidget(QWidget *widget, Qt::Alignment alignment)
QWidget *cornerWidget() const
QScrollBar *horizontalScrollBar() const
Qt::ScrollBarPolicy horizontalScrollBarPolicy() const
QSize maximumViewportSize() const
QWidgetList scrollBarWidgets(Qt::Alignment alignment)
void setCornerWidget(QWidget *widget)
void setHorizontalScrollBar(QScrollBar *scrollBar)
void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy)
void setSizeAdjustPolicy(QAbstractScrollArea::SizeAdjustPolicy policy)
void setVerticalScrollBar(QScrollBar *scrollBar)
void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy)
void setViewport(QWidget *widget)
virtual void setupViewport(QWidget *viewport)
QAbstractScrollArea::SizeAdjustPolicy sizeAdjustPolicy() const
QScrollBar *verticalScrollBar() const
Qt::ScrollBarPolicy verticalScrollBarPolicy() const
QWidget *viewport() const

Reimplementierte öffentliche Funktionen

virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

Geschützte Funktionen

virtual void scrollContentsBy(int dx, int dy)
void setViewportMargins(const QMargins &margins)
void setViewportMargins(int left, int top, int right, int bottom)
virtual bool viewportEvent(QEvent *event)
QMargins viewportMargins() const
virtual QSize viewportSizeHint() const

Reimplementierte geschützte Funktionen

virtual void contextMenuEvent(QContextMenuEvent *e) override
virtual void dragEnterEvent(QDragEnterEvent *event) override
virtual void dragLeaveEvent(QDragLeaveEvent *event) override
virtual void dragMoveEvent(QDragMoveEvent *event) override
virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *event) override
virtual void keyPressEvent(QKeyEvent *e) 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 *event) override
virtual void resizeEvent(QResizeEvent *event) override
virtual void wheelEvent(QWheelEvent *e) override

Detaillierte Beschreibung

QAbstractScrollArea ist eine Low-Level-Abstraktion eines scrollenden Bereichs. Der Bereich bietet ein zentrales Widget, das Viewport, in dem der Inhalt des Bereichs gescrollt werden soll (d.h. die sichtbaren Teile des Inhalts werden im Viewport gerendert).

Neben dem Ansichtsfenster befindet sich eine vertikale Bildlaufleiste und darunter eine horizontale Bildlaufleiste. Wenn der gesamte Inhalt des Bereichs in das Ansichtsfenster passt, kann jede Bildlaufleiste entweder sichtbar oder verborgen sein, je nachdem, ob die Bildlaufleiste Qt::ScrollBarPolicy ist. Wenn eine Bildlaufleiste ausgeblendet ist, dehnt sich das Ansichtsfenster aus, um den gesamten verfügbaren Platz abzudecken. Wenn eine Bildlaufleiste wieder sichtbar wird, schrumpft das Ansichtsfenster, um Platz für die Bildlaufleiste zu schaffen.

Es ist möglich, einen Randbereich um das Ansichtsfenster zu reservieren, siehe setViewportMargins(). Diese Funktion wird meist verwendet, um ein QHeaderView Widget über oder neben dem Bildlaufbereich zu platzieren. Unterklassen von QAbstractScrollArea sollten Margins implementieren.

Wenn Sie QAbstractScrollArea erben, müssen Sie folgendes tun:

  • Steuern Sie die Bildlaufleisten, indem Sie ihren Bereich, Wert und Seitenschritt festlegen und ihre Bewegungen verfolgen.
  • Zeichnen Sie den Inhalt des Bereichs im Ansichtsfenster entsprechend den Werten der Bildlaufleisten.
  • Behandeln Sie Ereignisse, die das Ansichtsfenster in viewportEvent() empfängt - insbesondere Größenänderungen.
  • Verwenden Sie viewport->update(), um den Inhalt des Ansichtsfensters zu aktualisieren, anstatt update(), da alle Malvorgänge im Ansichtsfenster stattfinden.

Mit einer Scrollbar-Policy von Qt::ScrollBarAsNeeded (dem Standard) zeigt QAbstractScrollArea Scrollbars an, wenn sie einen Scrollbereich ungleich Null bieten, und blendet sie ansonsten aus.

Die Bildlaufleisten und das Ansichtsfenster sollten immer dann aktualisiert werden, wenn das Ansichtsfenster ein Größenänderungsereignis erhält oder sich die Größe des Inhalts ändert. Das Ansichtsfenster muss auch aktualisiert werden, wenn sich die Werte der Bildlaufleisten ändern. Die Anfangswerte der Bildlaufleisten werden häufig festgelegt, wenn der Bereich neue Inhalte erhält.

Wir geben ein einfaches Beispiel, in dem wir einen Bildlaufbereich implementiert haben, der einen beliebigen QWidget scrollen kann. Wir machen das Widget zu einem Kind des Ansichtsfensters; auf diese Weise müssen wir nicht berechnen, welcher Teil des Widgets gezeichnet werden soll, sondern können das Widget einfach mit QWidget::move() verschieben. Wenn sich der Inhalt des Bereichs oder die Größe des Ansichtsfensters ändert, gehen wir wie folgt vor:

    QSize areaSize = viewport()->size();
    QSize  widgetSize = widget->size();

    verticalScrollBar()->setPageStep(areaSize.height());
    horizontalScrollBar()->setPageStep(areaSize.width());
    verticalScrollBar()->setRange(0, widgetSize.height() - areaSize.height());
    horizontalScrollBar()->setRange(0, widgetSize.width() - areaSize.width());
    updateWidgetPosition();

Wenn die Bildlaufleisten ihren Wert ändern, müssen wir die Position des Widgets aktualisieren, d. h. den Teil des Widgets finden, der im Ansichtsfenster gezeichnet werden soll:

    int hvalue = horizontalScrollBar()->value();
    int vvalue = verticalScrollBar()->value();
    QPoint topLeft = viewport()->rect().topLeft();

    widget->move(topLeft.x() - hvalue, topLeft.y() - vvalue);

Um die Bewegungen der Bildlaufleisten zu verfolgen, muss die virtuelle Funktion scrollContentsBy() neu implementiert werden. Zur Feinabstimmung des Scrollverhaltens verbinden Sie sich mit dem QAbstractSlider::actionTriggered()-Signal eines Scrollbalkens und passen Sie die QAbstractSlider::sliderPosition wie gewünscht an.

Der Einfachheit halber stellt QAbstractScrollArea alle Viewport-Ereignisse im virtuellen Handler viewportEvent() zur Verfügung. QWidget Die spezialisierten Handler von QAbstractScrollArea werden in den Fällen, in denen dies sinnvoll ist, auf Viewport-Ereignisse abgebildet. Die neu zugeordneten spezialisierten Handler sind: paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent(), und resizeEvent().

QScrollAreaDie Klasse QAbstractScrollArea, die von QAbstractScrollArea erbt, bietet einen reibungslosen Bildlauf für jedes QWidget (d. h. das Widget wird Pixel für Pixel gescrollt). Sie müssen QAbstractScrollArea nur unterklassifizieren, wenn Sie ein spezielleres Verhalten benötigen. Dies ist z.B. der Fall, wenn der gesamte Inhalt des Bereichs nicht für die Darstellung auf QWidget geeignet ist oder wenn Sie kein sanftes Scrollen wünschen.

Siehe auch QScrollArea.

Dokumentation der Mitgliedstypen

enum QAbstractScrollArea::SizeAdjustPolicy

Diese Aufzählung gibt an, wie der Größenhinweis von QAbstractScrollArea angepasst werden soll, wenn sich die Größe des Ansichtsfensters ändert.

KonstanteWertBeschreibung
QAbstractScrollArea::AdjustIgnored0Der Bildlaufbereich verhält sich wie bisher - und passt sich nicht an.
QAbstractScrollArea::AdjustToContents2Der Scrollbereich passt sich immer an den Viewport an
QAbstractScrollArea::AdjustToContentsOnFirstShow1Der Bildlaufbereich passt sich bei der ersten Anzeige an das Ansichtsfenster an.

Dokumentation der Eigenschaft

horizontalScrollBarPolicy : Qt::ScrollBarPolicy

Diese Eigenschaft enthält die Richtlinie für die horizontale Bildlaufleiste

Die Standardeinstellung ist Qt::ScrollBarAsNeeded.

Zugriffsfunktionen:

Qt::ScrollBarPolicy horizontalScrollBarPolicy() const
void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy)

Siehe auch verticalScrollBarPolicy.

sizeAdjustPolicy : SizeAdjustPolicy

Diese Eigenschaft enthält die Richtlinie, die beschreibt, wie sich die Größe des Bildlaufbereichs ändert, wenn sich die Größe des Ansichtsfensters ändert.

Die Standardeinstellung ist QAbstractScrollArea::AdjustIgnored. Das Ändern dieser Eigenschaft kann die Größe des Bildlaufbereichs tatsächlich ändern.

Zugriffsfunktionen:

QAbstractScrollArea::SizeAdjustPolicy sizeAdjustPolicy() const
void setSizeAdjustPolicy(QAbstractScrollArea::SizeAdjustPolicy policy)

verticalScrollBarPolicy : Qt::ScrollBarPolicy

Diese Eigenschaft enthält die Richtlinie für die vertikale Bildlaufleiste

Die Standardrichtlinie ist Qt::ScrollBarAsNeeded.

Zugriffsfunktionen:

Qt::ScrollBarPolicy verticalScrollBarPolicy() const
void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy)

Siehe auch horizontalScrollBarPolicy.

Dokumentation der Mitgliedsfunktionen

[explicit] QAbstractScrollArea::QAbstractScrollArea(QWidget *parent = nullptr)

Konstruiert ein Ansichtsfenster.

Das Argument parent wird an den QWidget Konstruktor gesendet.

[virtual noexcept] QAbstractScrollArea::~QAbstractScrollArea()

Zerstört das Ansichtsfenster.

void QAbstractScrollArea::addScrollBarWidget(QWidget *widget, Qt::Alignment alignment)

Fügt widget als Bildlaufleisten-Widget an der durch alignment angegebenen Stelle hinzu.

Bildlaufleisten-Widgets werden neben der horizontalen oder vertikalen Bildlaufleiste angezeigt und können auf beiden Seiten der Leiste platziert werden. Wenn Sie möchten, dass die Bildlaufleisten-Widgets immer sichtbar sind, setzen Sie die scrollBarPolicy für die entsprechende Bildlaufleiste auf AlwaysOn.

alignment muss eines von Qt::Alignleft und Qt::AlignRight sein, was der horizontalen Bildlaufleiste entspricht, oder Qt::AlignTop und Qt::AlignBottom, was der vertikalen Bildlaufleiste entspricht.

Ein Scrollbar-Widget kann entfernt werden, indem man es entweder neu parentiert oder löscht. Es ist auch möglich, ein Widget mit QWidget::hide() auszublenden.

Die Größe des Bildlaufleisten-Widgets wird an die Geometrie der Bildlaufleiste für den aktuellen Stil angepasst. Im Folgenden wird der Fall für Bildlaufleisten-Widgets auf der horizontalen Bildlaufleiste beschrieben:

Die Höhe des Widgets wird so eingestellt, dass sie der Höhe der Bildlaufleiste entspricht. Um die Breite des Widgets zu steuern, verwenden Sie QWidget::setMinimumWidth und QWidget::setMaximumWidth, oder implementieren Sie QWidget::sizeHint() und legen Sie eine horizontale Größenrichtlinie fest. Wenn Sie ein quadratisches Widget wünschen, rufen Sie QStyle::pixelMetric(QStyle::PM_ScrollBarExtent) auf und setzen Sie die Breite auf diesen Wert.

Siehe auch scrollBarWidgets().

[override virtual protected] void QAbstractScrollArea::contextMenuEvent(QContextMenuEvent *e)

Reimplements: QWidget::contextMenuEvent(QContextMenuEvent *event).

Dieser Event-Handler kann in einer Unterklasse reimplementiert werden, um Kontextmenü-Ereignisse für das viewport()-Widget zu empfangen. Das Ereignis wird in e übergeben.

Siehe auch QWidget::contextMenuEvent().

QWidget *QAbstractScrollArea::cornerWidget() const

Gibt das Widget in der Ecke zwischen den beiden Bildlaufleisten zurück.

Standardmäßig ist kein Eck-Widget vorhanden.

Siehe auch setCornerWidget().

[override virtual protected] void QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event)

Reimplements: QWidget::dragEnterEvent(QDragEnterEvent *event).

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Drag-Enter-Events (übergeben in event) für das viewport() Widget zu empfangen.

Siehe auch QWidget::dragEnterEvent().

[override virtual protected] void QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event)

Reimplements: QWidget::dragLeaveEvent(QDragLeaveEvent *event).

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Drag Leave-Ereignisse (übergeben in event) für das viewport() Widget zu empfangen.

Siehe auch QWidget::dragLeaveEvent().

[override virtual protected] void QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event)

Reimplements: QWidget::dragMoveEvent(QDragMoveEvent *event).

Dieser Event-Handler kann in einer Unterklasse reimplementiert werden, um Drag-Move-Ereignisse (übergeben in event) für das viewport() Widget zu empfangen.

Siehe auch QWidget::dragMoveEvent().

[override virtual protected] void QAbstractScrollArea::dropEvent(QDropEvent *event)

Reimplements: QWidget::dropEvent(QDropEvent *event).

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Drop-Ereignisse (übergeben in event) für das viewport() Widget zu empfangen.

Siehe auch QWidget::dropEvent().

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

Reimplements: QFrame::event(QEvent *e).

Dies ist der Hauptereignishandler für das QAbstractScrollArea Widget(nicht für den Bildlaufbereich viewport()). Das angegebene event ist ein allgemeines Ereignisobjekt, das je nach Typ in die entsprechende Klasse gecastet werden muss.

Siehe auch QEvent::type().

QScrollBar *QAbstractScrollArea::horizontalScrollBar() const

Gibt die horizontale Bildlaufleiste zurück.

Siehe auch setHorizontalScrollBar(), horizontalScrollBarPolicy, und verticalScrollBar().

[override virtual protected] void QAbstractScrollArea::keyPressEvent(QKeyEvent *e)

Reimplements: QWidget::keyPressEvent(QKeyEvent *event).

Diese Funktion wird mit dem Tastenereignis e aufgerufen, wenn eine Taste gedrückt wird. Sie behandelt PageUp, PageDown, Up, Down, Left und Right und ignoriert alle anderen Tastenbetätigungen.

QSize QAbstractScrollArea::maximumViewportSize() const

Gibt die Größe des Ansichtsfensters zurück, als ob die Bildlaufleisten keinen gültigen Bildlaufbereich hätten.

[override virtual] QSize QAbstractScrollArea::minimumSizeHint() const

Reimplantiert eine Zugriffsfunktion für die Eigenschaft: QWidget::minimumSizeHint.

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

Reimplements: QWidget::mouseDoubleClickEvent(QMouseEvent *event).

Dieser Event-Handler kann in einer Unterklasse reimplementiert werden, um Maus-Doppelklick-Ereignisse für das viewport()-Widget zu empfangen. Das Ereignis wird in e übergeben.

Siehe auch QWidget::mouseDoubleClickEvent().

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

Reimplements: QWidget::mouseMoveEvent(QMouseEvent *event).

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Mausbewegungsereignisse für das viewport()-Widget zu empfangen. Das Ereignis wird in e übergeben.

Siehe auch QWidget::mouseMoveEvent().

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

Reimplements: QWidget::mousePressEvent(QMouseEvent *event).

Dieser Ereignishandler kann in einer Unterklasse neu implementiert werden, um Mausdruckereignisse für das viewport()-Widget zu empfangen. Das Ereignis wird in e übergeben.

Die Standardimplementierung ruft QWidget::mousePressEvent() für die Standard-Popup-Behandlung auf.

Siehe auch QWidget::mousePressEvent().

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

Reimplements: QWidget::mouseReleaseEvent(QMouseEvent *event).

Dieser Event-Handler kann in einer Unterklasse reimplementiert werden, um Mausfreigabe-Ereignisse für das viewport()-Widget zu empfangen. Das Ereignis wird in e übergeben.

Siehe auch QWidget::mouseReleaseEvent().

[override virtual protected] void QAbstractScrollArea::paintEvent(QPaintEvent *event)

Reimplements: QFrame::paintEvent(QPaintEvent *).

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Paint-Ereignisse (übergeben in event) für das viewport() Widget zu empfangen.

Hinweis: Wenn Sie ein QPainter erstellen, muss es auf das viewport() wirken.

Siehe auch QWidget::paintEvent().

[override virtual protected] void QAbstractScrollArea::resizeEvent(QResizeEvent *event)

Reimplements: QWidget::resizeEvent(QResizeEvent *event).

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Größenänderungsereignisse (übergeben in event) für das viewport() Widget zu empfangen.

Wenn resizeEvent() aufgerufen wird, hat das Ansichtsfenster bereits seine neue Geometrie: Seine neue Größe ist über die Funktion QResizeEvent::size() zugänglich, die alte Größe über QResizeEvent::oldSize().

Siehe auch QWidget::resizeEvent().

QWidgetList QAbstractScrollArea::scrollBarWidgets(Qt::Alignment alignment)

Gibt eine Liste der aktuell eingestellten Bildlaufleisten-Widgets zurück. alignment kann eine beliebige Kombination der vier Ortsflags sein.

Siehe auch addScrollBarWidget().

[virtual protected] void QAbstractScrollArea::scrollContentsBy(int dx, int dy)

Dieser virtuelle Handler wird aufgerufen, wenn die Bildlaufleisten von dx, dy verschoben werden und folglich der Inhalt des Ansichtsfensters entsprechend gescrollt werden soll.

Die Standardimplementierung ruft einfach update() auf dem gesamten viewport() auf, Unterklassen können diesen Handler zu Optimierungszwecken oder - wie QScrollArea - zum Verschieben eines Inhalts-Widgets neu implementieren. Die Parameter dx und dy dienen der Bequemlichkeit, damit die Klasse weiß, wie weit gescrollt werden soll (nützlich z.B. bei Pixelverschiebungen). Sie können diese Werte aber auch ignorieren und direkt zu der Position scrollen, die die Bildlaufleisten anzeigen.

Der Aufruf dieser Funktion zum programmatischen Scrollen ist ein Fehler, verwenden Sie stattdessen die Bildlaufleisten (z. B. durch direkten Aufruf von QScrollBar::setValue()).

void QAbstractScrollArea::setCornerWidget(QWidget *widget)

Stellt das Widget in der Ecke zwischen den beiden Bildlaufleisten auf widget ein.

Wahrscheinlich möchten Sie auch mindestens einen der Bildlaufleistenmodi auf AlwaysOn setzen.

Die Angabe nullptr zeigt kein Widget in der Ecke an.

Jedes vorherige Eck-Widget wird ausgeblendet.

Sie können setCornerWidget() mit demselben Widget zu verschiedenen Zeiten aufrufen.

Alle hier gesetzten Widgets werden vom Scrollbereich gelöscht, wenn er zerstört wird, es sei denn, Sie reparieren das Widget separat, nachdem Sie ein anderes Eck-Widget gesetzt haben (oder nullptr).

Jedes neu gesetzte Widget sollte kein aktuelles Elternteil haben.

Standardmäßig ist kein Eck-Widget vorhanden.

Siehe auch cornerWidget(), horizontalScrollBarPolicy, und horizontalScrollBarPolicy.

void QAbstractScrollArea::setHorizontalScrollBar(QScrollBar *scrollBar)

Ersetzt die vorhandene horizontale Bildlaufleiste durch scrollBar und setzt alle Eigenschaften der früheren Bildlaufleiste auf die neue Bildlaufleiste. Die frühere Bildlaufleiste wird dann gelöscht.

QAbstractScrollArea bietet bereits standardmäßig horizontale und vertikale Bildlaufleisten. Sie können diese Funktion aufrufen, um die standardmäßige horizontale Bildlaufleiste durch Ihre eigene benutzerdefinierte Bildlaufleiste zu ersetzen.

Siehe auch horizontalScrollBar() und setVerticalScrollBar().

void QAbstractScrollArea::setVerticalScrollBar(QScrollBar *scrollBar)

Ersetzt die vorhandene vertikale Bildlaufleiste durch scrollBar und setzt alle Eigenschaften der früheren Bildlaufleiste auf die neue Bildlaufleiste. Die alte Bildlaufleiste wird dann gelöscht.

QAbstractScrollArea bietet bereits standardmäßig vertikale und horizontale Bildlaufleisten. Sie können diese Funktion aufrufen, um die standardmäßige vertikale Bildlaufleiste durch Ihre eigene benutzerdefinierte Bildlaufleiste zu ersetzen.

Siehe auch verticalScrollBar() und setHorizontalScrollBar().

void QAbstractScrollArea::setViewport(QWidget *widget)

Setzt das Ansichtsfenster auf das angegebene widget. QAbstractScrollArea wird Eigentümer des angegebenen widget.

Wenn widget nullptr ist, wird QAbstractScrollArea eine neue QWidget Instanz für das Ansichtsfenster zuweisen.

Siehe auch viewport().

[protected] void QAbstractScrollArea::setViewportMargins(const QMargins &margins)

Legt margins um den Bildlaufbereich fest. Dies ist nützlich für Anwendungen wie Tabellenkalkulationen mit "gesperrten" Zeilen und Spalten. Der Randbereich wird leer gelassen; legen Sie Widgets in den ungenutzten Bereich.

Standardmäßig sind alle Ränder gleich Null.

Siehe auch viewportMargins().

[protected] void QAbstractScrollArea::setViewportMargins(int left, int top, int right, int bottom)

Setzt die Ränder um den Bildlaufbereich auf left, top, right und bottom. Dies ist nützlich für Anwendungen wie Tabellenkalkulationen mit "gesperrten" Zeilen und Spalten. Der Randbereich wird frei gelassen; legen Sie Widgets in den ungenutzten Bereich.

Beachten Sie, dass diese Funktion häufig von QTreeView und QTableView aufgerufen wird, so dass Ränder von QAbstractScrollArea Unterklassen implementiert werden müssen. Auch wenn die Unterklassen in Elementansichten verwendet werden sollen, sollten sie diese Funktion nicht aufrufen.

Standardmäßig sind alle Ränder gleich Null.

Siehe auch viewportMargins().

[virtual] void QAbstractScrollArea::setupViewport(QWidget *viewport)

Dieser Slot wird von QAbstractScrollArea aufgerufen, nachdem setViewport(viewport) aufgerufen wurde. Reimplementieren Sie diese Funktion in einer Unterklasse von QAbstractScrollArea, um die neue viewport zu initialisieren, bevor sie verwendet wird.

Siehe auch setViewport().

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

Reimplements: QFrame::sizeHint() const.

Gibt die sizeHint-Eigenschaft des Bildlaufbereichs zurück. Die Größe wird durch die Verwendung von viewportSizeHint() plus etwas zusätzlichen Platz für Bildlaufleisten, falls erforderlich, bestimmt.

QScrollBar *QAbstractScrollArea::verticalScrollBar() const

Gibt die vertikale Bildlaufleiste zurück.

Siehe auch setVerticalScrollBar(), verticalScrollBarPolicy, und horizontalScrollBar().

QWidget *QAbstractScrollArea::viewport() const

Gibt das Ansichtsfenster-Widget zurück.

Verwenden Sie die Funktion QScrollArea::widget(), um den Inhalt des Ansichtsfenster-Widgets abzurufen.

Siehe auch setViewport() und QScrollArea::widget().

[virtual protected] bool QAbstractScrollArea::viewportEvent(QEvent *event)

Der Hauptereignishandler für den Bildlaufbereich (das viewport() Widget). Er behandelt das angegebene event und kann von Unterklassen aufgerufen werden, um ein vernünftiges Standardverhalten zu bieten.

Gibt true zurück, um dem Ereignissystem mitzuteilen, dass das Ereignis behandelt wurde und nicht weiter verarbeitet werden muss; andernfalls gibt sie false zurück, um anzuzeigen, dass das Ereignis weitergegeben werden sollte.

Sie können diese Funktion in einer Unterklasse neu implementieren, aber wir empfehlen, stattdessen einen der spezialisierten Event-Handler zu verwenden.

Spezialisierte Handler für Viewport-Ereignisse sind: paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent(), und resizeEvent().

[protected] QMargins QAbstractScrollArea::viewportMargins() const

Gibt die Ränder um den Bildlaufbereich zurück. Standardmäßig sind alle Ränder gleich Null.

Siehe auch setViewportMargins().

[virtual protected] QSize QAbstractScrollArea::viewportSizeHint() const

Gibt die empfohlene Größe für das Ansichtsfenster zurück. Die Standardimplementierung gibt viewport()->sizeHint() zurück. Beachten Sie, dass die Größe nur die Größe des Ansichtsfensters ist, ohne sichtbare Bildlaufleisten.

[override virtual protected] void QAbstractScrollArea::wheelEvent(QWheelEvent *e)

Reimplements: QWidget::wheelEvent(QWheelEvent *event).

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Rad-Ereignisse für das viewport()-Widget zu empfangen. Das Ereignis wird in e übergeben.

Siehe auch QWidget::wheelEvent().

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