Класс QMetaProperty
Класс QMetaProperty предоставляет метаданные о свойстве. Подробнее...
| Заголовок: | #include <QMetaProperty> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
Открытые функции
| QUntypedBindable | bindable(QObject *object) const |
| QMetaEnum | enumerator() const |
| bool | hasNotifySignal() const |
| bool | isBindable() const |
| bool | isConstant() const |
| bool | isDesignable() const |
| bool | isEnumType() const |
| bool | isFinal() const |
| bool | isFlagType() const |
| bool | isReadable() const |
| bool | isRequired() const |
| bool | isResettable() const |
| bool | isScriptable() const |
| bool | isStored() const |
| bool | isUser() const |
| bool | isValid() const |
| bool | isWritable() const |
| QMetaType | metaType() const |
| const char * | name() const |
| QMetaMethod | notifySignal() const |
| int | notifySignalIndex() const |
| int | propertyIndex() const |
| QVariant | read(const QObject *object) const |
| QVariant | readOnGadget(const void *gadget) const |
| int | relativePropertyIndex() const |
| bool | reset(QObject *object) const |
| bool | resetOnGadget(void *gadget) const |
| int | revision() const |
| int | typeId() const |
| const char * | typeName() const |
| int | userType() const |
| bool | write(QObject *object, const QVariant &value) const |
| bool | writeOnGadget(void *gadget, const QVariant &value) const |
Подробное описание
Метаданные свойства получаются из метаобъекта объекта. Подробности см. в QMetaObject::property() и QMetaObject::propertyCount().
Метаданные свойства
Свойство имеет имя (name()) и тип, а также различные атрибуты, определяющие его поведение: isReadable(), isWritable(), isDesignable(), isScriptable(), revision() и isStored().
Если свойство является перечислением, isEnumType() возвращает true; если свойство является перечислением, которое также является флагом (т. е. его значения могут быть объединены с помощью оператора ИЛИ), isEnumType() и isFlagType() оба возвращают true. Перечисление для этих типов доступно из enumerator().
Значения свойства устанавливаются и извлекаются с помощью read(), write() и reset(); они также могут быть изменены с помощью функций set и get QObject. См. QObject::setProperty() и QObject::property() для получения подробной информации.
Копирование и присваивание
Объекты QMetaProperty могут быть скопированы по значению. Однако каждая копия будет ссылаться на те же самые метаданные свойства.
См. также QMetaObject, QMetaEnum, QMetaMethod и Систему свойств Qt.
Документация по функциям-членам
[since 6.0] QUntypedBindable QMetaProperty::bindable(QObject *object) const
Возвращает интерфейс bindable для свойства на заданном объекте.
Если свойство не поддерживает привязку, возвращаемый интерфейс будет недопустимым.
Эта функция была добавлена в Qt 6.0.
См. также QObjectBindableProperty, QProperty и isBindable().
QMetaEnum QMetaProperty::enumerator() const
Возвращает перечисление, если тип этого свойства является типом перечисления; в противном случае возвращаемое значение не определено.
См. также isEnumType() и isFlagType().
bool QMetaProperty::hasNotifySignal() const
Возвращает true если у этого свойства есть соответствующий сигнал уведомления об изменении; в противном случае возвращает false.
См. также notifySignal().
[since 6.0] bool QMetaProperty::isBindable() const
Возвращает true если Q_PROPERTY() предоставляет функциональность привязки; в противном случае возвращает false.
Это подразумевает, что вы можете создать привязки, использующие это свойство в качестве зависимости, или установить объекты QPropertyObserver на это свойство. Если свойство не является только для чтения, вы также можете установить привязку к этому свойству.
Эта функция была добавлена в Qt 6.0.
См. также QProperty, isWritable() и bindable().
bool QMetaProperty::isConstant() const
Возвращает true если свойство является константой; в противном случае возвращает false.
Свойство является константой, если атрибут Q_PROPERTY() свойства CONSTANT установлен.
bool QMetaProperty::isDesignable() const
Возвращает false если атрибут Q_PROPERTY() свойства DESIGNABLE равен false; в противном случае возвращает true.
См. также isScriptable() и isStored().
bool QMetaProperty::isEnumType() const
Возвращает true если тип свойства — перечисление; в противном случае возвращает false.
См. также enumerator() и isFlagType().
bool QMetaProperty::isFinal() const
Возвращает true если свойство является окончательным; в противном случае возвращает false.
Свойство является окончательным, если для Q_PROPERTY() установлено атрибут FINAL.
bool QMetaProperty::isFlagType() const
Возвращает true если тип свойства — перечисление, используемое как флаг; в противном случае возвращает false.
Флаги могут быть объединены с помощью оператора OR. Тип флага неявно также является типом перечисления.
См. также isEnumType(), enumerator() и QMetaEnum::isFlag().
bool QMetaProperty::isReadable() const
Возвращает true если свойство читаемое; в противном случае возвращает false.
См. также isWritable(), read() и isValid().
[since 5.15] bool QMetaProperty::isRequired() const
Возвращает true если свойство обязательно; в противном случае возвращает false.
Свойство является окончательным, если для Q_PROPERTY() установлено атрибут REQUIRED.
Эта функция была добавлена в Qt 5.15.
bool QMetaProperty::isResettable() const
Возвращает true если свойство может быть сброшено до значения по умолчанию; в противном случае возвращает false.
См. также reset().
bool QMetaProperty::isScriptable() const
Возвращает false если для Q_PROPERTY() установлено значение атрибута SCRIPTABLE; в противном случае возвращает true.
См. также isDesignable() и isStored().
bool QMetaProperty::isStored() const
Возвращает true если свойство сохраняется; в противном случае возвращает false.
Функция возвращает false если для Q_PROPERTY() установлено значение атрибута STORED; в противном случае возвращает true.
См. также isDesignable() и isScriptable().
bool QMetaProperty::isUser() const
Возвращает false если для Q_PROPERTY() установлено значение атрибута USER . В противном случае возвращает true, указывая, что свойство обозначено как свойство пользователя, то есть то, которое пользователь может редактировать или которое важно каким-то другим образом.
См. также QMetaObject::userProperty(), isDesignable() и isScriptable().
bool QMetaProperty::isValid() const
Возвращает true если свойство валидно (читаемое); в противном случае возвращает false.
См. также isReadable().
bool QMetaProperty::isWritable() const
Возвращает true если свойство записываемое; в противном случае возвращает false.
См. также isReadable() и write().
[since 6.0] QMetaType QMetaProperty::metaType() const
Возвращает QMetaType этого свойства.
Эта функция была добавлена в Qt 6.0.
См. также QMetaType.
const char *QMetaProperty::name() const
Возвращает имя этого свойства.
См. также type() и typeName().
QMetaMethod QMetaProperty::notifySignal() const
Возвращает экземпляр QMetaMethod сигнала уведомления об изменении свойства, если он был указан; в противном случае возвращает недействительный QMetaMethod.
См. также hasNotifySignal().
int QMetaProperty::notifySignalIndex() const
Возвращает индекс сигнала уведомления об изменении свойства, если он был указан; в противном случае возвращает -1.
См. также hasNotifySignal().
int QMetaProperty::propertyIndex() const
Возвращает индекс этого свойства.
QVariant QMetaProperty::read(const QObject *object) const
Считывает значение свойства из заданного объекта object. Возвращает значение, если удалось его считать; в противном случае возвращает недействительный вариант.
См. также write(), reset() и isReadable().
[since 5.5] QVariant QMetaProperty::readOnGadget(const void *gadget) const
Считывает значение свойства из заданного gadget. Возвращает значение, если удалось его считать; в противном случае возвращает недействительный вариант.
Эта функция должна использоваться только если это свойство объекта Q_GADGET.
Эта функция была добавлена в Qt 5.5.
[since 5.14] int QMetaProperty::relativePropertyIndex() const
Возвращает индекс этого свойства относительно вложенного метаобъекта.
Эта функция была добавлена в Qt 5.14.
bool QMetaProperty::reset(QObject *object) const
Сбрасывает свойство для заданного объекта object с помощью метода сброса. Возвращает true если сброс выполнен; в противном случае возвращает false.
Методы сброса необязательны; только некоторые свойства их поддерживают.
[since 5.5] bool QMetaProperty::resetOnGadget(void *gadget) const
Сбрасывает свойство для заданного gadget с помощью метода сброса. Возвращает true если сброс выполнен; в противном случае возвращает false.
Эта функция должна использоваться только если это свойство объекта Q_GADGET.
Эта функция была добавлена в Qt 5.5.
[since 5.1] int QMetaProperty::revision() const
Возвращает версию свойства, если она была указана параметром REVISION; в противном случае возвращает 0.
Эта функция была добавлена в Qt 5.1.
[since 6.0] int QMetaProperty::typeId() const
Возвращает тип хранения свойства. Это то же, что metaType().id().
Эта функция была добавлена в Qt 6.0.
См. также QMetaType, typeName() и metaType().
const char *QMetaProperty::typeName() const
Возвращает имя типа этого свойства.
int QMetaProperty::userType() const
Возвращает пользовательский тип этого свойства. Возвращаемое значение — одно из значений, зарегистрированных с помощью QMetaType.
Эквивалентно metaType().id()
См. также type(), QMetaType, typeName() и metaType().
bool QMetaProperty::write(QObject *object, const QVariant &value) const
Записывает value как значение свойства в заданный объект object. Возвращает true, если запись выполнена успешно; в противном случае возвращает false.
Если value не имеет того же типа, что и свойство, выполняется попытка преобразования. Пустой QVariant() эквивалентен вызову reset(), если это свойство сбрасываемое, или установлению объекта, созданного по умолчанию, в противном случае.
См. также read(), reset() и isWritable().
[since 5.5] bool QMetaProperty::writeOnGadget(void *gadget, const QVariant &value) const
Записывает value как значение свойства в заданный gadget. Возвращает true, если запись выполнена успешно; в противном случае возвращает false.
Эта функция должна использоваться только если это свойство объекта Q_GADGET.
Эта функция была добавлена в Qt 5.5.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qmetaproperty.html