Spec-Zone.ru › Qt 6.0

Класс QDesignerPropertyEditorInterface

Класс QDesignerPropertyEditorInterface позволяет вам запросить и изменить текущее состояние редактора свойств Qt Designer. Подробнее...

Заголовок: #include <QDesignerPropertyEditorInterface>
CMake: find_package(Qt6 COMPONENTS Designer REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Designer)
qmake: QT += designer
Наследуется от: QWidget
  • Список всех членов, включая унаследованные

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

QDesignerPropertyEditorInterface(QWidget *parent, Qt::WindowFlags flags = {})
virtual ~QDesignerPropertyEditorInterface()
virtual QDesignerFormEditorInterface * core() const
virtual QString currentPropertyName() const = 0
virtual bool isReadOnly() const = 0
virtual QObject * object() const = 0

Открытые слоты

virtual void setObject(QObject *object) = 0
virtual void setPropertyValue(const QString &name, const QVariant &value, bool changed = true) = 0
virtual void setReadOnly(bool readOnly) = 0

Сигналы

void propertyChanged(const QString &name, const QVariant &value)

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

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

Например, при реализации плагина пользовательского виджета, вы можете подключить сигнал к пользовательскому слоту:

        QDesignerPropertyEditorInterface *propertyEditor = 0;
        propertyEditor = formEditor->propertyEditor();

        connect(propertyEditor, SIGNAL(propertyChanged(QString,QVariant)),
                this, SLOT(checkProperty(QString,QVariant)));

Затем пользовательский слот может проверить, находится ли новое значение в нужном диапазоне, когда изменяется указанное свойство, относящееся к определенному виджету:

        void checkProperty(QString property, QVariant value) {
            QDesignerPropertyEditorInterface *propertyEditor = 0;
            propertyEditor = formEditor->propertyEditor();

            QObject *object = propertyeditor->object();
            MyCustomWidget *widget = qobject_cast<MyCustomWidget>(object);

            if (widget && property == aProperty && value != expectedValue)
                {...}
        }

Класс QDesignerPropertyEditorInterface не предназначен для прямого создания экземпляров. Вы можете получить интерфейс к редактору свойств Qt Designer, используя функцию QDesignerFormEditorInterface::propertyEditor(). Указатель на текущий объект QDesignerFormEditorInterface Qt Designer (formEditor в примерах выше) предоставляется параметром функции QDesignerCustomWidgetInterface::initialize(). При реализации плагина пользовательского виджета вы должны унаследовать от QDesignerCustomWidgetInterface, чтобы предоставить ваш плагин для Qt Designer.

Функции для доступа к редактору свойств - это функция core(), которую вы можете использовать для получения интерфейса к редактору формы, функция currentPropertyName(), возвращающая имя текущего выбранного свойства в редакторе свойств, функция object(), возвращающая текущий выбранный объект в рабочем пространстве Qt Designer, и функция isReadOnly(), возвращающая true, если редактор свойств защищен от записи (в противном случае false).

Слоты, манипулирующие состоянием редактора свойств, - это слот setObject(), который вы можете использовать для изменения текущего выбранного объекта в рабочем пространстве Qt Designer, слот setPropertyValue(), изменяющий значение заданного свойства, и слот setReadOnly(), управляющий защитой от записи редактора свойств.

См. такжеQDesignerFormEditorInterface.

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

QDesignerPropertyEditorInterface::QDesignerPropertyEditorInterface(QWidget *parent, Qt::WindowFlags flags = {})

Создает интерфейс редактора свойств с заданным parent и указанными флагами окна.

[signal] void QDesignerPropertyEditorInterface::propertyChanged(const QString &name, const QVariant &value)

Этот сигнал генерируется всякий раз, когда свойство изменяется в редакторе свойств. Свойство, которое изменилось, и его новое значение задаются соответственно параметрами name и value.

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

[pure virtual slot] void QDesignerPropertyEditorInterface::setObject(QObject *object)

Изменяет текущий выбранный объект в рабочем пространстве Qt Designer на object.

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

[pure virtual slot] void QDesignerPropertyEditorInterface::setPropertyValue(const QString &name, const QVariant &value, bool changed = true)

Устанавливает значение свойства, указанного параметром name, в value.

Кроме того, свойство отмечается как изменённое в редакторе свойств, т. е. его значение отличается от значения по умолчанию.

См. такжеcurrentPropertyName() и propertyChanged().

[pure virtual slot] void QDesignerPropertyEditorInterface::setReadOnly(bool readOnly)

Если readOnly равно true, редактор свойств защищается от записи; в противном случае защита от записи снимается.

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

[virtual] QDesignerPropertyEditorInterface::~QDesignerPropertyEditorInterface()

Удаляет интерфейс редактора свойств.

[virtual] QDesignerFormEditorInterface *QDesignerPropertyEditorInterface::core() const

Возвращает указатель на текущий объект QDesignerFormEditorInterface Qt Designer.

[pure virtual] QString QDesignerPropertyEditorInterface::currentPropertyName() const

Возвращает имя текущего выбранного свойства в редакторе свойств.

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

[pure virtual] bool QDesignerPropertyEditorInterface::isReadOnly() const

Возвращает true, если редактор свойств защищен от записи; в противном случае false.

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

[pure virtual] QObject *QDesignerPropertyEditorInterface::object() const

Возвращает текущий выбранный объект в рабочем пространстве Qt Designer.

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

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

Spec-Zone.ru

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