Класс 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