Spec-Zone.ru › Qt 5.15

Класс QDockWidget

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

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

Типы public

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

Свойства

  • allowedAreas : Qt::DockWidgetAreas
  • features : DockWidgetFeatures
  • floating : bool
  • windowTitle : QString

Public-функции

QDockWidget(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
QDockWidget(const QString &title, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
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

Сигналы

void allowedAreasChanged(Qt::DockWidgetAreas allowedAreas)
void dockLocationChanged(Qt::DockWidgetArea area)
void featuresChanged(QDockWidget::DockWidgetFeatures features)
void topLevelChanged(bool topLevel)
void visibilityChanged(bool visible)

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

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

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

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

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

Внешний вид

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

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

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

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

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

перечисление QDockWidget::DockWidgetFeatureфлаги 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.

END_OF_DOCUMENT_MARKER

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

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(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[signal] void QDockWidget::topLevelChanged(bool topLevel)

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

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

[signal] void QDockWidget::visibilityChanged(bool visible)

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

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

[virtual] QDockWidget::~QDockWidget()

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

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

Переопределяет: QWidget::changeEvent(QEvent *event).

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

Переопределяет: QWidget::closeEvent(QCloseEvent *event).

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

Переопределяет: QWidget::event(QEvent *event).

[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(QPaintEvent *event).

void QDockWidget::setTitleBarWidget(QWidget *widget)

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

Если установлен виджет панели заголовка, 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(). Эти функции должны учитывать текущую ориентацию панели заголовка.
  • Невозможно удалить панель заголовка из виджета док-станции. Однако аналогичный эффект можно получить, установив виджет QWidget по умолчанию в качестве виджета панели заголовка.

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

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

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

void QDockWidget::setWidget(QWidget *widget)

Устанавливает виджет для виджета док-станции на widget.

Если виджет док-станции виден при добавлении widget, его необходимо явно show().

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

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

QWidget *QDockWidget::titleBarWidget() const

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

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

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

QAction *QDockWidget::toggleViewAction() const

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

Текст элемента управления устанавливается на заголовок окна виджета док-станции.

Примечание: Элемент управления нельзя использовать для программного отображения или скрытия виджета док-станции. Используйте свойство visible для этого.

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

QWidget *QDockWidget::widget() const

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

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

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

Spec-Zone.ru

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