Spec-Zone.ru › Qt 5.12

Класс QDockWidget

Класс QDockWidget предоставляет виджет, который может быть прикреплён к QMainWindow или плавающим окном на рабочем столе. Подробнее...

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

Типы публичного доступа

Перечисление DockWidgetFeature { DockWidgetClosable, DockWidgetMovable, DockWidgetFloatable, DockWidgetVerticalTitleBar, AllDockWidgetFeatures, NoDockWidgetFeatures }
флаги DockWidgetFeatures

Свойства

  • allowedAreas : Qt::DockWidgetAreas
  • features : DockWidgetFeatures
  • floating : bool
  • windowTitle : QString
  • 59 свойств, унаследованных от QWidget
  • 1 свойство, унаследованное от QObject

Функции публичного доступа

QDockWidget(const QString &title, QWidget *parent = nullptr, Qt::WindowFlags flags = ...)
QDockWidget(QWidget *parent = nullptr, Qt::WindowFlags flags = ...)
virtual ~QDockWidget()
Qt::DockWidgetAreas allowedAreas() const
QDockWidget::DockWidgetFeatures features() const
bool isAreaAllowed(Qt::DockWidgetArea area) const
bool isFloating() const
void setAllowedAreas(Qt::DockWidgetAreas areas)
void setFeatures(QDockWidget::DockWidgetFeatures features)
void setFloating(bool floating)
void setTitleBarWidget(QWidget *widget)
void setWidget(QWidget *widget)
QWidget * titleBarWidget() const
QAction * toggleViewAction() const
QWidget * widget() const
  • 214 функций публичного доступа, унаследованных от QWidget
  • 31 функция публичного доступа, унаследованная от QObject
  • 14 функция публичного доступа, унаследованная от QPaintDevice

Сигналы

void allowedAreasChanged(Qt::DockWidgetAreas allowedAreas)
void dockLocationChanged(Qt::DockWidgetArea area)
void featuresChanged(QDockWidget::DockWidgetFeatures features)
void topLevelChanged(bool topLevel)
void visibilityChanged(bool visible)
  • 3 сигнала, унаследованные от QWidget
  • 2 сигнала, унаследованные от QObject

Статические публичные члены

const QMetaObject staticMetaObject
  • 5 статических публичных членов, унаследованных от QWidget
  • 9 статических публичных членов, унаследованных от QObject

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

void initStyleOption(QStyleOptionDockWidget *option) const

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

virtual void changeEvent(QEvent *event) override
virtual void closeEvent(QCloseEvent *event) override
virtual bool event(QEvent *event) override
virtual void paintEvent(QPaintEvent *event) override
  • 35 защищённых функций, унаследованных от QWidget
  • 9 защищённых функций, унаследованных от QObject
  • 1 защищённая функция, унаследованная от QPaintDevice

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

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

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

Класс QDockWidget предоставляет виджет, который может быть прикреплён к QMainWindow или плавающим окном на рабочем столе.

QDockWidget предоставляет концепцию прикреплённых виджетов, также известных как панели инструментов или служебные окна. Окна прикрепления — это вторичные окна, размещаемые в области прикрепления виджетов вокруг центрального виджета в QMainWindow.

Окна прикрепления могут перемещаться внутри своей текущей области, перемещаться в новые области и плавать (например, открепляться) пользователем. API QDockWidget позволяет программисту ограничить возможность перемещения, плавания и закрытия виджетов прикрепления, а также области, в которых они могут быть размещены.

Внешний вид

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

Визуальный вид панели заголовка и кнопок зависит от используемого стиля.

QDockWidget выступает в качестве оболочки для своего дочернего виджета, установленного с помощью setWidget(). Пользовательские подсказки размера, минимальный и максимальный размеры и политики размера должны быть реализованы в дочернем виджете. QDockWidget будет учитывать их, корректируя свои собственные ограничения для включения рамки и заголовка. Ограничения размеров не должны устанавливаться для самого QDockWidget, потому что они меняются в зависимости от того, прикреплён он или нет; прикреплённый QDockWidget не имеет рамки и имеет меньшую панель заголовка.

См. также QMainWindow и Пример виджетов прикрепления.

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

enum QDockWidget::DockWidgetFeatureflags QDockWidget::DockWidgetFeatures

Константа Значение Описание
QDockWidget::DockWidgetClosable 0x01 Окно виджета дока может быть закрыто. На некоторых системах окно виджета дока всегда имеет кнопку закрытия, когда оно плавающее (например, на MacOS 10.5).
QDockWidget::DockWidgetMovable 0x02 Пользователь может перемещать окно виджета дока между доками.
QDockWidget::DockWidgetFloatable 0x04 Окно виджета дока может быть отделено от основного окна и представлено в виде независимого окна.
QDockWidget::DockWidgetVerticalTitleBar 0x08 Окно виджета дока отображает вертикальную строку заголовка слева. Это может быть использовано для увеличения вертикального пространства в QMainWindow.
QDockWidget::AllDockWidgetFeatures DockWidgetClosable|DockWidgetMovable|DockWidgetFloatable (Устарело) Окно виджета дока может быть закрыто, перемещено и отображено как плавающее. Поскольку в будущих выпусках могут быть добавлены новые функции, внешний вид и поведение виджетов доков могут измениться, если вы используете этот флаг. Пожалуйста, укажите отдельные флаги вместо этого.
QDockWidget::NoDockWidgetFeatures 0x00 Окно виджета дока не может быть закрыто, перемещено или представлено как плавающее.

Тип DockWidgetFeatures является псевдонимом для QFlags<DockWidgetFeature>. Он хранит логическое ИЛИ сочетание значений DockWidgetFeature.

Документация по свойствам

allowedAreas : Qt::DockWidgetAreas

области, в которые может быть помещен виджет дока

По умолчанию значение Qt::AllDockWidgetAreas.

Функции доступа:

Qt::DockWidgetAreas allowedAreas() const
void setAllowedAreas(Qt::DockWidgetAreas areas)

Сигнал уведомления:

void allowedAreasChanged(Qt::DockWidgetAreas allowedAreas)

См. также Qt::DockWidgetArea.

features : DockWidgetFeatures

Это свойство указывает, можно ли перемещать, закрывать и делать окно виджета дока плавающим.

По умолчанию это свойство установлено в сочетание значений DockWidgetClosable, DockWidgetMovable и DockWidgetFloatable.

Функции доступа:

QDockWidget::DockWidgetFeatures features() const
void setFeatures(QDockWidget::DockWidgetFeatures features)

Сигнал уведомления:

void featuresChanged(QDockWidget::DockWidgetFeatures features)

См. также DockWidgetFeature.

floating : bool

Это свойство указывает, является ли виджет дока плавающим.

Плавающее окно виджета дока отображается пользователю как независимое окно «сверху» его родительского QMainWindow, а не прикреплённым к QMainWindow.

По умолчанию это свойство равно true.

При изменении этого свойства отправляется сигнал topLevelChanged().

Функции доступа:

bool isFloating() const
void setFloating(bool floating)

См. также isWindow() и topLevelChanged().

windowTitle : QString

Это свойство содержит заголовок виджета дока.

По умолчанию это свойство содержит пустую строку.

Функции доступа:

QString windowTitle() const
void setWindowTitle(const QString &)

Сигнал уведомления:

void windowTitleChanged(const QString &title)

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

QDockWidget::QDockWidget(const QString &title, QWidget *parent = nullptr, Qt::WindowFlags flags = ...)

Создаёт виджет QDockWidget с родителем parent и флагами окна flags. Виджет дока будет размещён в левой области виджета дока.

Заголовок окна установлен в title. Этот заголовок используется, когда QDockWidget прикреплён и откреплён. Он также используется в контекстном меню, предоставляемом QMainWindow.

См. также setWindowTitle().

QDockWidget::QDockWidget(QWidget *parent = nullptr, Qt::WindowFlags flags = ...)

Создаёт виджет QDockWidget с родителем parent и флагами окна flags. Виджет дока будет размещён в левой области виджета дока.

[virtual] QDockWidget::~QDockWidget()

Уничтожает виджет дока.

[signal] void QDockWidget::allowedAreasChanged(Qt::DockWidgetAreas allowedAreas)

Этот сигнал отправляется при изменении свойства allowedAreas. Параметр allowedAreas содержит новое значение свойства.

Примечание: Сигнал уведомления для свойства allowedAreas.

[override virtual protected] void QDockWidget::changeEvent(QEvent *event)

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

[override virtual protected] void QDockWidget::closeEvent(QCloseEvent *event)

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

[signal] void QDockWidget::dockLocationChanged(Qt::DockWidgetArea area)

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

Эта функция была добавлена в Qt 4.3.

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

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

[signal] void QDockWidget::featuresChanged(QDockWidget::DockWidgetFeatures features)

Этот сигнал отправляется при изменении свойства features. Параметр features содержит новое значение свойства.

Примечание: Сигнал уведомления для свойства features.

[protected] void QDockWidget::initStyleOption(QStyleOptionDockWidget *option) const

Инициализирует option значениями из этого виджета QDockWidget. Этот метод полезен для подклассов, когда им требуется QStyleOptionDockWidget, но они не хотят сами заполнять всю информацию.

См. также QStyleOption::initFrom().

bool QDockWidget::isAreaAllowed(Qt::DockWidgetArea area) const

Возвращает true , если этот виджет дока может быть размещён в данной области area; в противном случае возвращает false.

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

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

void QDockWidget::setTitleBarWidget(QWidget *widget)

Устанавливает произвольный виджет widget в качестве панели заголовка виджета QDockWidget. Если widget равен 0, любой пользовательский виджет панели заголовка, ранее установленный для виджета QDockWidget, удаляется (но не удаляется), и вместо него используется стандартная панель заголовка.

Если виджет панели заголовка установлен, QDockWidget не будет использовать системные украшения окна при его плавающем состоянии.

Вот несколько советов по реализации пользовательских панелей заголовков:

  • События мыши, которые не обрабатываются явно виджетом панели заголовка, должны игнорироваться, вызывая QMouseEvent::ignore(). Эти события затем передаются родительскому виджету QDockWidget, который обрабатывает их обычным образом, перемещая при перетаскивании панели заголовка, прикрепляя и открепляя при двойном щелчке и т. д.
  • Когда DockWidgetVerticalTitleBar установлен для QDockWidget, виджет панели заголовка перепозиционируется соответственно. В resizeEvent() виджет панели заголовка должен проверить, какую ориентацию он должен принять:
    QDockWidget *dockWidget = qobject_cast<QDockWidget*>(parentWidget());
    if (dockWidget->features() & QDockWidget::DockWidgetVerticalTitleBar) {
        // I need to be vertical
    } else {
        // I need to be horizontal
    }
  • Виджет панели заголовка должен иметь корректный QWidget::sizeHint() и QWidget::minimumSizeHint(). Эти функции должны учитывать текущую ориентацию панели заголовка.
  • Удалить панель заголовка из виджета QDockWidget невозможно. Однако аналогичный эффект можно получить, установив виджет QWidget с конструктором по умолчанию в качестве виджета панели заголовка.

Использование qobject_cast() в приведённом примере обеспечивает полную доступность виджета панели заголовка к родительскому виджету QDockWidget. Таким образом, он может выполнять такие операции, как прикрепление и скрытие в ответ на действия пользователя.

Эта функция была представлена в Qt 4.3.

См. также titleBarWidget() и DockWidgetVerticalTitleBar.

void QDockWidget::setWidget(QWidget *widget)

Устанавливает виджет для виджета QDockWidget в widget.

Если виджет QDockWidget видимый, когда widget добавляется, вы должны явно вызвать show().

Обратите внимание, что вы должны добавить макет widget перед вызовом этой функции; в противном случае widget не будет виден.

См. также widget().

QWidget *QDockWidget::titleBarWidget() const

Возвращает установленный пользовательский виджет панели заголовка для QDockWidget или 0, если пользовательский виджет панели заголовка не установлен.

Эта функция была представлена в Qt 4.3.

См. также setTitleBarWidget().

QAction *QDockWidget::toggleViewAction() const

Возвращает флажковый виджет, который можно использовать для отображения или скрытия этого виджета QDockWidget.

Текст виджета устанавливается в заголовок окна виджета QDockWidget.

См. также QAction::text и QWidget::windowTitle.

void QDockWidget::topLevelChanged(bool topLevel)

Этот сигнал излучается при изменении свойства floating. Параметр topLevel равен true, если виджет QDockWidget теперь плавающий, иначе false.

См. также isWindow().

void QDockWidget::visibilityChanged(bool visible)

Этот сигнал излучается, когда виджет QDockWidget становится видимым (или невидимым). Это происходит при скрытии или показе виджета, а также при его закреплении во вкладке области QDockWidget и выборе или отмене выбора вкладки.

Эта функция была представлена в Qt 4.3.

QWidget *QDockWidget::widget() const

Возвращает виджет для виджета QDockWidget. Эта функция возвращает ноль, если виджет не установлен.

См. также setWidget().

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

Spec-Zone.ru

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