Spec-Zone.ru › Qt 5.6

Класс QSplitterHandle

Класс QSplitterHandle предоставляет функциональность управления разделителями.

Подробнее...

Заголовок: #include <QSplitterHandle>
qmake: QT += widgets
Наследует: QWidget
  • Список всех членов, включая унаследованные

Открытые функции

QSplitterHandle(Qt::Orientation orientation, QSplitter *parent)
~QSplitterHandle()
bool opaqueResize() const
Qt::Orientation orientation() const
void setOrientation(Qt::Orientation orientation)
QSplitter * splitter() const

Переопределённые открытые функции

virtual QSize sizeHint() const
  • 211 открытых функций, унаследованных от QWidget
  • 31 открытых функций, унаследованных от QObject
  • 14 открытых функций, унаследованных от QPaintDevice

Защищённые функции

int closestLegalPosition(int pos)
void moveSplitter(int pos)

Переопределённые защищённые функции

virtual bool event(QEvent *event)
virtual void mouseMoveEvent(QMouseEvent *e)
virtual void mousePressEvent(QMouseEvent *e)
virtual void mouseReleaseEvent(QMouseEvent *e)
virtual void paintEvent()
virtual void resizeEvent(QResizeEvent *event)
  • 35 защищённых функций, унаследованных от QWidget
  • 9 защищённых функций, унаследованных от QObject
  • 1 защищённая функция, унаследованная от QPaintDevice

Дополнительные унаследованные члены

  • 58 свойств, унаследованных от QWidget
  • 1 свойства, унаследованного от QObject
  • 19 публичных слотов, унаследованных от QWidget
  • 1 публичного слота, унаследованного от QObject
  • 3 сигналов, унаследованных от QWidget
  • 2 сигналов, унаследованных от QObject
  • 5 статических публичных членов, унаследованных от QWidget
  • 11 статических публичных членов, унаследованных от QObject
  • 1 защищённого слота, унаследованного от QWidget

Подробное описание

Класс QSplitterHandle предоставляет функциональность управления разделителями.

QSplitterHandle обычно представляет собой элемент управления, с помощью которого происходит изменение размера виджетов.

Обычно разработчикам, использующим QSplitter, не нужно беспокоиться о QSplitterHandle. Он предназначен для разработчиков, желающих добавить дополнительные возможности в элементы управления разделителями, такие как всплывающие меню.

Обычно для создания пользовательских элементов управления разделителями необходимо наследовать класс QSplitter и переопределить метод QSplitter::createHandle() для создания экземпляра пользовательского элемента управления разделителями. Например, минимальный подкласс QSplitter может выглядеть так:

class Splitter : public QSplitter
{
public:
    Splitter(Qt::Orientation orientation, QWidget *parent = 0);

protected:
    QSplitterHandle *createHandle();
};

Реализация метода createHandle() просто создаёт пользовательский элемент управления разделителем, называемый Splitter в этом примере:

QSplitterHandle *Splitter::createHandle()
{
    return new SplitterHandle(orientation(), this);
}

Информация о данном элементе управления может быть получена с помощью функций, таких как orientation() и opaqueResize(), и извлекается из родительского разделителя. Эта информация может использоваться для изменения внешнего вида пользовательских элементов управления в зависимости от ориентации разделителя.

Сложность пользовательского подкласса зависит от задач, которые он должен выполнять. Простой подкласс может только реализовать метод 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));
}

В этом примере градиент задаётся по-разному в зависимости от ориентации элемента управления. QSplitterHandle предоставляет разумную рекомендацию по размеру элемента управления, поэтому подклассу не нужно переопределять метод sizeHint(), если нет специальных требований к размеру элемента управления.

См. также QSplitter.

Документация по функциям-членам

QSplitterHandle::QSplitterHandle(Qt::Orientation orientation, QSplitter *parent)

Создаёт элемент управления разделителем QSplitter с заданной ориентацией и родителем.

QSplitterHandle::~QSplitterHandle()

Деструктор.

[protected] int QSplitterHandle::closestLegalPosition(int pos)

Возвращает ближайшую допустимую позицию для элемента управления разделителем относительно позиции pos. Позиции измеряются от левого или верхнего края разделителя, даже для языков с правосторонним письмом.

См. также QSplitter::closestLegalPosition() и moveSplitter().

[virtual protected] bool QSplitterHandle::event(QEvent *event)

Переопределяет метод QObject::event().

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

Переопределяет метод QWidget::mouseMoveEvent().

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

Переопределяет метод QWidget::mousePressEvent().

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

Переопределяет метод QWidget::mouseReleaseEvent().

[protected] void QSplitterHandle::moveSplitter(int pos)

Указывает разделителю переместить этот элемент управления в позицию pos, которая является расстоянием от левого или верхнего края виджета.

Обратите внимание, что pos также измеряется слева (или сверху) для языков с правосторонним письмом. Эта функция сопоставит pos с соответствующей позицией перед вызовом QSplitter::moveSplitter().

См. также QSplitter::moveSplitter() и closestLegalPosition().

bool QSplitterHandle::opaqueResize() const

Возвращает true, если виджеты изменяются динамически (непрозрачно), в противном случае возвращает false. Это значение контролируется QSplitter.

См. также QSplitter::opaqueResize().

Qt::Orientation QSplitterHandle::orientation() const

Возвращает ориентацию элемента управления. Обычно это значение передаётся от QSplitter.

См. также setOrientation() и QSplitter::orientation().

[virtual protected] void QSplitterHandle::paintEvent(QPaintEvent *)

Переопределено из QWidget::paintEvent().

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

Переопределено из QWidget::resizeEvent().

void QSplitterHandle::setOrientation(Qt::Orientation orientation)

Устанавливает ориентацию разделителя на orientation. Обычно наследуется от QSplitter.

См. также orientation() и QSplitter::setOrientation().

[virtual] QSize QSplitterHandle::sizeHint() const

Переопределено из QWidget::sizeHint().

QSplitter *QSplitterHandle::splitter() const

Возвращает разделитель, связанный с этим разделителем.

См. также QSplitter::handle().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qsplitterhandle.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API