QSplitterHandle Class
Die Klasse QSplitterHandle bietet Handle-Funktionalität für den Splitter. Mehr...
Kopfzeile: | #include <QSplitterHandle> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Vererbungen: | QWidget |
Öffentliche Funktionen
QSplitterHandle(Qt::Orientation orientation, QSplitter *parent) | |
virtual | ~QSplitterHandle() |
bool | opaqueResize() const |
Qt::Orientation | orientation() const |
void | setOrientation(Qt::Orientation orientation) |
QSplitter * | splitter() const |
Reimplementierte öffentliche Funktionen
virtual QSize | sizeHint() const override |
Geschützte Funktionen
int | closestLegalPosition(int pos) |
void | moveSplitter(int pos) |
Reimplementierte geschützte Funktionen
virtual bool | event(QEvent *event) override |
virtual void | mouseMoveEvent(QMouseEvent *e) override |
virtual void | mousePressEvent(QMouseEvent *e) override |
virtual void | mouseReleaseEvent(QMouseEvent *e) override |
virtual void | paintEvent(QPaintEvent *) override |
virtual void | resizeEvent(QResizeEvent *event) override |
Detaillierte Beschreibung
QSplitterHandle ist typischerweise das, woran die Leute denken, wenn sie an einen Splitter denken. Es ist das Handle, das zur Größenänderung der Widgets verwendet wird.
Ein typischer Entwickler, der QSplitter verwendet, wird sich nie um QSplitterHandle kümmern müssen. Es wird für Entwickler bereitgestellt, die Splitter-Handles mit zusätzlichen Funktionen wie Popup-Menüs benötigen.
Die typische Art und Weise, wie man Splitter-Handles erstellt, besteht darin, die Subklasse QSplitter zu erstellen und dann QSplitter::createHandle() neu zu implementieren, um das benutzerdefinierte Splitter-Handle zu instanziieren. Eine minimale QSplitter Unterklasse könnte zum Beispiel so aussehen:
class Splitter : public QSplitter { public: Splitter(Qt::Orientation orientation, QWidget *parent = nullptr); protected: QSplitterHandle *createHandle() override; };
Die Implementierung createHandle() erstellt einfach ein benutzerdefiniertes Splitter-Handle, in diesem Beispiel Splitter
genannt:
QSplitterHandle *Splitter::createHandle() { return new SplitterHandle(orientation(), this); }
Informationen über ein bestimmtes Handle können mit Funktionen wie orientation() und opaqueResize() abgerufen werden und werden von seinem übergeordneten Splitter abgerufen. Details wie diese können verwendet werden, um benutzerdefinierten Handles je nach Ausrichtung des Splitters ein unterschiedliches Erscheinungsbild zu geben.
Die Komplexität einer Unterklasse für benutzerdefinierte Handles hängt von den Aufgaben ab, die sie erfüllen muss. Eine einfache Unterklasse bietet möglicherweise nur eine paintEvent()-Implementierung:
void SplitterHandle::paintEvent(QPaintEvent *event) { QPainter painter(this); if (orientation() == Qt::Horizontal) { gradient.setStart(rect().left(), rect().height()/2); gradient.setFinalStop(rect().right(), rect().height()/2); } else { gradient.setStart(rect().width()/2, rect().top()); gradient.setFinalStop(rect().width()/2, rect().bottom()); } painter.fillRect(event->rect(), QBrush(gradient)); }
In diesem Beispiel wird ein vordefinierter Farbverlauf abhängig von der Ausrichtung des Handles unterschiedlich eingestellt. QSplitterHandle bietet einen vernünftigen Größenhinweis für das Handle, so dass die Unterklasse keine Reimplementierung von sizeHint() bereitstellen muss, es sei denn, das Handle hat spezielle Größenanforderungen.
Siehe auch QSplitter.
Dokumentation der Mitgliedsfunktionen
[explicit]
QSplitterHandle::QSplitterHandle(Qt::Orientation orientation, QSplitter *parent)
Erzeugt ein QSplitter -Handle mit den angegebenen orientation und parent.
[virtual noexcept]
QSplitterHandle::~QSplitterHandle()
Zerstörer.
[protected]
int QSplitterHandle::closestLegalPosition(int pos)
Gibt die nächstgelegene legale Position des Splittergriffs an pos zurück. Die Positionen werden von der linken oder oberen Kante des Splitters aus gemessen, auch bei Sprachen mit Rechts-nach-Links-Ausrichtung.
Siehe auch QSplitter::closestLegalPosition() und moveSplitter().
[override virtual protected]
bool QSplitterHandle::event(QEvent *event)
Reimplements: QWidget::event(QEvent *Event).
[override virtual protected]
void QSplitterHandle::mouseMoveEvent(QMouseEvent *e)
Reimplements: QWidget::mouseMoveEvent(QMouseEvent *event).
[override virtual protected]
void QSplitterHandle::mousePressEvent(QMouseEvent *e)
Reimplements: QWidget::mousePressEvent(QMouseEvent *event).
[override virtual protected]
void QSplitterHandle::mouseReleaseEvent(QMouseEvent *e)
Reimplements: QWidget::mouseReleaseEvent(QMouseEvent *event).
[protected]
void QSplitterHandle::moveSplitter(int pos)
Weist den Splitter an, diesen Griff an die Position pos zu verschieben, die den Abstand vom linken oder oberen Rand des Widgets angibt.
Beachten Sie, dass pos auch von links (oder oben) für Rechts-nach-Links-Sprachen gemessen wird. Diese Funktion ordnet pos der entsprechenden Position zu, bevor sie QSplitter::moveSplitter() aufruft.
Siehe auch QSplitter::moveSplitter() und closestLegalPosition().
bool QSplitterHandle::opaqueResize() const
Gibt true
zurück, wenn die Größe der Widgets dynamisch (undurchsichtig) geändert wird, während der Splitter interaktiv bewegt wird. Andernfalls wird false
zurückgegeben. Dieser Wert wird durch die QSplitter gesteuert.
Siehe auch QSplitter::opaqueResize().
Qt::Orientation QSplitterHandle::orientation() const
Gibt die Ausrichtung des Griffs zurück. Diese wird normalerweise von QSplitter weitergegeben.
Siehe auch setOrientation() und QSplitter::orientation().
[override virtual protected]
void QSplitterHandle::paintEvent(QPaintEvent *)
Reimplements: QWidget::paintEvent(QPaintEvent *event).
[override virtual protected]
void QSplitterHandle::resizeEvent(QResizeEvent *event)
Reimplements: QWidget::resizeEvent(QResizeEvent *event).
void QSplitterHandle::setOrientation(Qt::Orientation orientation)
Setzt die Ausrichtung des Splittergriffs auf orientation. Dies wird normalerweise von QSplitter weitergegeben.
Siehe auch orientation() und QSplitter::setOrientation().
[override virtual]
QSize QSplitterHandle::sizeHint() const
Reimplantiert eine Zugriffsfunktion für die Eigenschaft: QWidget::sizeHint.
QSplitter *QSplitterHandle::splitter() const
Gibt den mit diesem Splitter-Handle verbundenen Splitter zurück.
Siehe auch QSplitter::handle().
© 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.