本文整理汇总了C++中QQmlProperty类的典型用法代码示例。如果您正苦于以下问题:C++ QQmlProperty类的具体用法?C++ QQmlProperty怎么用?C++ QQmlProperty使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QQmlProperty类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: foreach
void QQmlQtQuick2DebugStatesDelegate::updateBinding(QQmlContext *context,
const QQmlProperty &property,
const QVariant &expression, bool isLiteralValue,
const QString &fileName, int line, int column,
bool *inBaseState)
{
typedef QPointer<QQuickState> QuickStatePointer;
QObject *object = property.object();
QString propertyName = property.name();
foreach (const QuickStatePointer& statePointer, m_allStates) {
if (QQuickState *state = statePointer.data()) {
// here we assume that the revert list on itself defines the base state
if (state->isStateActive() && state->containsPropertyInRevertList(object, propertyName)) {
*inBaseState = false;
QQmlBinding *newBinding = 0;
if (!isLiteralValue) {
newBinding = new QQmlBinding(expression.toString(), object,
QQmlContextData::get(context), fileName,
line, column);
newBinding->setTarget(property);
newBinding->setNotifyOnValueChanged(true);
}
state->changeBindingInRevertList(object, propertyName, newBinding);
if (isLiteralValue)
state->changeValueInRevertList(object, propertyName, expression);
}
}
}
}
示例2: HighQualityTextureItem
VideoRendererItem::VideoRendererItem(QQuickItem *parent)
: HighQualityTextureItem(parent)
, d(new Data(this))
{
d->mposd = new MpOsdItem(this);
d->letterbox = new LetterboxItem(this);
const QQmlProperty property(d->letterbox, "anchors.centerIn");
property.write(QVariant::fromValue(this));
setZ(-1);
setAcceptHoverEvents(true);
setAcceptedMouseButtons(Qt::AllButtons);
setFlag(ItemAcceptsDrops, true);
connect(d->mposd, &MpOsdItem::targetSizeChanged,
this, &VideoRendererItem::osdSizeChanged);
}
示例3: deleteObjectsInList
void ObjectNodeInstance::deleteObjectsInList(const QQmlProperty &property)
{
QObjectList objectList;
QQmlListReference list = qvariant_cast<QQmlListReference>(property.read());
if (!QmlPrivateGate::hasFullImplementedListInterface(list)) {
qWarning() << "Property list interface not fully implemented for Class " << property.property().typeName() << " in property " << property.name() << "!";
return;
}
for (int i = 0; i < list.count(); i++) {
objectList += list.at(i);
}
list.clear();
}
示例4: HighQualityTextureItem
VideoRenderer::VideoRenderer(QQuickItem *parent)
: HighQualityTextureItem(parent)
, d(new Data(this))
{
d->letterbox = new LetterboxItem(this);
const QQmlProperty property(d->letterbox, u"anchors.centerIn"_q);
property.write(QVariant::fromValue(this));
setZ(-1);
setAcceptHoverEvents(true);
setAcceptedMouseButtons(Qt::AllButtons);
setFlag(ItemAcceptsDrops, true);
connect(&d->sizeChecker, &QTimer::timeout, [=] () { d->updateOsdSize(); });
d->sizeChecker.setInterval(300);
d->measure.setTimer([=]() {
if (_Change(d->fps, d->measure.get()))
emit fpsChanged(d->fps);
}, 100000);
}
示例5: Super
VideoRenderer::VideoRenderer(QQuickItem *parent)
: Super(parent), d(new Data)
{
d->p = this;
d->letterbox = new LetterboxItem(this);
const QQmlProperty property(d->letterbox, u"anchors.centerIn"_q);
property.write(QVariant::fromValue(this));
setZ(-1);
setAcceptHoverEvents(true);
setAcceptedMouseButtons(Qt::AllButtons);
setFlag(ItemAcceptsDrops, true);
connect(&d->sizeChecker, &QTimer::timeout, [this] () {
if (_Change(d->frame.size, d->fboSizeHint()) |
_Change(d->osd.size, d->osdSizeHint())) {
d->redraw = true;
reserve(UpdateAll);
}
});
d->sizeChecker.setInterval(300);
d->sizeChecker.setSingleShot(true);
}
示例6: removeObjectFromList
static void removeObjectFromList(const QQmlProperty &property, QObject *objectToBeRemoved, QQmlEngine * engine)
{
QQmlListReference listReference(property.object(), property.name().toUtf8(), engine);
if (!QmlPrivateGate::hasFullImplementedListInterface(listReference)) {
qWarning() << "Property list interface not fully implemented for Class " << property.property().typeName() << " in property " << property.name() << "!";
return;
}
int count = listReference.count();
QObjectList objectList;
for (int i = 0; i < count; i ++) {
QObject *listItem = listReference.at(i);
if (listItem && listItem != objectToBeRemoved)
objectList.append(listItem);
}
listReference.clear();
foreach (QObject *object, objectList)
listReference.append(object);
}
示例7: handleProperty
/*!
\internal
*/
void ApplicationSettings::handleProperty(const QQmlProperty& qmlProperty, bool overwrite) {
// Validate property for this application settings
if(!qmlProperty.isValid() || qmlProperty.propertyType() == QVariant::Invalid) return;
// Skip applicationName and fileName
if(qmlProperty.name() == "applicationName" || qmlProperty.name() == "fileName") return;
//Don't persist class properties (only user defined ones)
if(m_existingProperties->contains(qmlProperty.name())) return;
QVariant v = value(qmlProperty.name());
// Add notification handler
QmlPropertyWrapper* wrapper = new QmlPropertyWrapper(qmlProperty);
m_userProperties->append(wrapper);
if(!m_initialized) {
connect(wrapper, SIGNAL(notifySignal(QmlPropertyWrapper*)), this,
SLOT(qmlPropertyLookup(QmlPropertyWrapper*)));
}
示例8: isObject
static bool isObject(const QQmlProperty &property)
{
return (property.propertyTypeCategory() == QQmlProperty::Object) ||
//QVariant can also store QObjects. Lets trust our model.
(QLatin1String(property.propertyTypeName()) == QLatin1String("QVariant"));
}
示例9: isList
static bool isList(const QQmlProperty &property)
{
return property.propertyTypeCategory() == QQmlProperty::List;
}
示例10: setTarget
void QQmlBinding::setTarget(const QQmlProperty &prop)
{
setTarget(prop.object(), QQmlPropertyPrivate::get(prop)->core,
QQmlPropertyPrivate::get(prop)->context);
}