QSplitterHandle Class
La clase QSplitterHandle proporciona la funcionalidad handle para el splitter. Más...
| Cabecera: | #include <QSplitterHandle> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Hereda: | QWidget |
Funciones Públicas
| QSplitterHandle(Qt::Orientation orientation, QSplitter *parent) | |
| virtual | ~QSplitterHandle() |
| bool | opaqueResize() const |
| Qt::Orientation | orientation() const |
| void | setOrientation(Qt::Orientation orientation) |
| QSplitter * | splitter() const |
Funciones públicas reimplementadas
| virtual QSize | sizeHint() const override |
Funciones protegidas
| int | closestLegalPosition(int pos) |
| void | moveSplitter(int pos) |
Funciones protegidas reimplementadas
| 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 |
Descripción Detallada
QSplitterHandle es típicamente en lo que la gente piensa cuando piensa en un splitter. Es el manejador que se utiliza para redimensionar los widgets.
Un desarrollador típico que utilice QSplitter nunca tendrá que preocuparse por QSplitterHandle. Se proporciona para desarrolladores que quieren manejadores de splitter que proporcionen características extra, como menús emergentes.
La forma típica de crear splitter handles es subclasificar QSplitter y luego reimplementar QSplitter::createHandle() para instanciar el splitter handle personalizado. Por ejemplo, una subclase mínima de QSplitter podría tener este aspecto:
class Splitter : public QSplitter { public: Splitter(Qt::Orientation orientation, QWidget *parent = nullptr); protected: QSplitterHandle *createHandle() override; };
La implementación de createHandle() simplemente construye un manejador de división personalizado, llamado Splitter en este ejemplo:
QSplitterHandle *Splitter::createHandle() { return new SplitterHandle(orientation(), this); }
La información sobre un manejador dado puede obtenerse usando funciones como orientation() y opaqueResize(), y se recupera de su divisor padre. Detalles como estos se pueden utilizar para dar a los manejadores personalizados diferentes apariencias dependiendo de la orientación del divisor.
La complejidad de una subclase de manejador personalizado depende de las tareas que necesite realizar. Una subclase simple puede proporcionar únicamente una implementación de paintEvent():
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)); }
En este ejemplo, un gradiente predefinido se configura de forma diferente dependiendo de la orientación del manejador. QSplitterHandle proporciona una sugerencia de tamaño razonable para el manejador, por lo que la subclase no necesita proporcionar una reimplementación de sizeHint() a menos que el manejador tenga requisitos especiales de tamaño.
Véase también QSplitter.
Documentación de las funciones miembro
[explicit] QSplitterHandle::QSplitterHandle(Qt::Orientation orientation, QSplitter *parent)
Crea un manejador QSplitter con los datos orientation y parent.
[virtual noexcept] QSplitterHandle::~QSplitterHandle()
Destructor.
[protected] int QSplitterHandle::closestLegalPosition(int pos)
Devuelve la posición legal más cercana a pos del asa del divisor. Las posiciones se miden desde el borde izquierdo o superior del divisor, incluso para idiomas de derecha a izquierda.
Véase también QSplitter::closestLegalPosition() y moveSplitter().
[override virtual protected] bool QSplitterHandle::event(QEvent *event)
Reimplementa: QWidget::event(QEvent *event).
[override virtual protected] void QSplitterHandle::mouseMoveEvent(QMouseEvent *e)
Reimplementa: QWidget::mouseMoveEvent(QMouseEvent *event).
[override virtual protected] void QSplitterHandle::mousePressEvent(QMouseEvent *e)
Reimplementa: QWidget::mousePressEvent(QMouseEvent *event).
[override virtual protected] void QSplitterHandle::mouseReleaseEvent(QMouseEvent *e)
Reimplementa: QWidget::mouseReleaseEvent(QMouseEvent *event).
[protected] void QSplitterHandle::moveSplitter(int pos)
Indica al divisor que mueva este manejador a la posición pos, que es la distancia desde el borde izquierdo o superior del widget.
Tenga en cuenta que pos también se mide desde la izquierda (o desde arriba) para los idiomas de derecha a izquierda. Esta función asignará pos a la posición apropiada antes de llamar a QSplitter::moveSplitter().
Véase también QSplitter::moveSplitter() y closestLegalPosition().
bool QSplitterHandle::opaqueResize() const
Devuelve true si los widgets se redimensionan dinámicamente (opacamente) mientras se mueve interactivamente el divisor. En caso contrario, devuelve false. Este valor está controlado por la función QSplitter.
Véase también QSplitter::opaqueResize().
Qt::Orientation QSplitterHandle::orientation() const
Devuelve la orientación del asa. Suele propagarse desde QSplitter.
Véase también setOrientation() y QSplitter::orientation().
[override virtual protected] void QSplitterHandle::paintEvent(QPaintEvent *)
Reimplementa: QWidget::paintEvent(QPaintEvent *event).
[override virtual protected] void QSplitterHandle::resizeEvent(QResizeEvent *event)
Reimplementa: QWidget::resizeEvent(QResizeEvent *event).
void QSplitterHandle::setOrientation(Qt::Orientation orientation)
Establece la orientación del asa del divisor en orientation. Normalmente se propaga desde QSplitter.
Véase también orientation() y QSplitter::setOrientation().
[override virtual] QSize QSplitterHandle::sizeHint() const
Reimplementa una función de acceso para la propiedad: QWidget::sizeHint.
QSplitter *QSplitterHandle::splitter() const
Devuelve el divisor asociado a este manejador de divisor.
Véase también QSplitter::handle().
© 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.