CustomObject { myRectProperty: Qt.rect(50, 50, 100, 100) }
\endqml
+The \c rect type also exposes read-only \c left, \c right, \c top and \c bottom
+attributes. These are the same as their \l {QRectF}{C++ counterparts}.
+
When integrating with C++, note that any QRect or QRectF value
\l{qtqml-cppintegration-data.html}{passed into QML from C++} is automatically
converted into a \c rect value, and vice-versa. When a \c rect value is passed to C++, it
v.setHeight(h);
}
+qreal QQmlRectFValueType::left() const
+{
+ return v.left();
+}
+
+qreal QQmlRectFValueType::right() const
+{
+ return v.right();
+}
+
+qreal QQmlRectFValueType::top() const
+{
+ return v.top();
+}
+
+qreal QQmlRectFValueType::bottom() const
+{
+ return v.bottom();
+}
+
int QQmlRectValueType::x() const
{
return v.x();
v.setHeight(h);
}
+int QQmlRectValueType::left() const
+{
+ return v.left();
+}
+
+int QQmlRectValueType::right() const
+{
+ return v.right();
+}
+
+int QQmlRectValueType::top() const
+{
+ return v.top();
+}
+
+int QQmlRectValueType::bottom() const
+{
+ return v.bottom();
+}
QQmlEasingValueType::Type QQmlEasingValueType::type() const
{
Q_PROPERTY(qreal y READ y WRITE setY FINAL)
Q_PROPERTY(qreal width READ width WRITE setWidth FINAL)
Q_PROPERTY(qreal height READ height WRITE setHeight FINAL)
+ Q_PROPERTY(qreal left READ left DESIGNABLE false FINAL)
+ Q_PROPERTY(qreal right READ right DESIGNABLE false FINAL)
+ Q_PROPERTY(qreal top READ top DESIGNABLE false FINAL)
+ Q_PROPERTY(qreal bottom READ bottom DESIGNABLE false FINAL)
Q_GADGET
public:
Q_INVOKABLE QString toString() const;
qreal height() const;
void setWidth(qreal);
void setHeight(qreal);
+
+ qreal left() const;
+ qreal right() const;
+ qreal top() const;
+ qreal bottom() const;
};
struct QQmlRectValueType
Q_PROPERTY(int y READ y WRITE setY FINAL)
Q_PROPERTY(int width READ width WRITE setWidth FINAL)
Q_PROPERTY(int height READ height WRITE setHeight FINAL)
+ Q_PROPERTY(int left READ left DESIGNABLE false FINAL)
+ Q_PROPERTY(int right READ right DESIGNABLE false FINAL)
+ Q_PROPERTY(int top READ top DESIGNABLE false FINAL)
+ Q_PROPERTY(int bottom READ bottom DESIGNABLE false FINAL)
Q_GADGET
public:
int x() const;
int height() const;
void setWidth(int);
void setHeight(int);
+
+ int left() const;
+ int right() const;
+ int top() const;
+ int bottom() const;
};
struct QQmlEasingValueType
const QMetaObject *mo = w->d()->propertyCache->metaObject();
const int propCount = mo->propertyCount();
for (int i = 0; i < propCount; ++i) {
- QVariant value = mo->property(i).readOnGadget(w->d()->gadgetPtr);
- result += value.toString();
- if (i < propCount - 1)
- result += QStringLiteral(", ");
+ if (mo->property(i).isDesignable()) {
+ QVariant value = mo->property(i).readOnGadget(w->d()->gadgetPtr);
+ if (i > 0)
+ result += QLatin1String(", ");
+ result += value.toString();
+ }
}
result += QLatin1Char(')');
}
import Test 1.0
MyTypeObject {
- property int r_x: rect.x
- property int r_y: rect.y
- property int r_width: rect.width
- property int r_height: rect.height
property variant copy: rect
property string tostring: rect.toString()
property int r_y: rect.y
property int r_width: rect.width
property int r_height: rect.height
+ property int r_left: rect.left
+ property int r_right: rect.right
+ property int r_top: rect.top
+ property int r_bottom: rect.bottom
property variant copy: rect
}
import Test 1.0
MyTypeObject {
- property real r_x: rectf.x
- property real r_y: rectf.y
- property real r_width: rectf.width
- property real r_height: rectf.height
property variant copy: rectf
property string tostring: rectf.toString()
property real r_y: rectf.y
property real r_width: rectf.width
property real r_height: rectf.height
+ property real r_left: rectf.left
+ property real r_right: rectf.right
+ property real r_top: rectf.top
+ property real r_bottom: rectf.bottom
property variant copy: rectf
}
QCOMPARE(object->property("r_y").toInt(), 3);
QCOMPARE(object->property("r_width").toInt(), 109);
QCOMPARE(object->property("r_height").toInt(), 102);
+ QCOMPARE(object->property("r_left").toInt(), 2);
+ QCOMPARE(object->property("r_right").toInt(), 110);
+ QCOMPARE(object->property("r_top").toInt(), 3);
+ QCOMPARE(object->property("r_bottom").toInt(), 104);
QCOMPARE(object->property("copy"), QVariant(QRect(2, 3, 109, 102)));
delete object;
QCOMPARE(float(object->property("r_y").toDouble()), float(99.2));
QCOMPARE(float(object->property("r_width").toDouble()), float(88.1));
QCOMPARE(float(object->property("r_height").toDouble()), float(77.6));
+ QCOMPARE(float(object->property("r_left").toDouble()), float(103.8));
+ QCOMPARE(float(object->property("r_right").toDouble()), float(191.9));
+ QCOMPARE(float(object->property("r_top").toDouble()), float(99.2));
+ QCOMPARE(float(object->property("r_bottom").toDouble()), float(176.8));
QCOMPARE(object->property("copy"), QVariant(QRectF(103.8, 99.2, 88.1, 77.6)));
delete object;