Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qquickpath_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QQUICKPATH_H
5#define QQUICKPATH_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <private/qtquickglobal_p.h>
19
21
22#include <qqml.h>
23
24#include <private/qqmlnullablevalue_p.h>
25#include <private/qbezier_p.h>
26#include <private/qtquickglobal_p.h>
27
28#include <QtCore/QObject>
29#include <QtCore/QHash>
30#include <QtGui/QPainterPath>
31#include <QtGui/QFont>
32
34
35class QQuickCurve;
37{
38 int index;
40 QList<QQuickCurve*> curves;
41};
42
43class Q_QUICK_EXPORT QQuickPathElement : public QObject
44{
48public:
49 QQuickPathElement(QObject *parent=nullptr) : QObject(parent) {}
51 void changed();
52};
53
54class Q_QUICK_EXPORT QQuickPathAttribute : public QQuickPathElement
55{
57
58 Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
59 Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY valueChanged)
60 QML_NAMED_ELEMENT(PathAttribute)
62public:
63 QQuickPathAttribute(QObject *parent=nullptr) : QQuickPathElement(parent) {}
64
65
66 QString name() const;
67 void setName(const QString &name);
68
69 qreal value() const;
70 void setValue(qreal value);
71
75
76private:
77 QString _name;
78 qreal _value = 0;
79};
80
81class Q_QUICK_EXPORT QQuickCurve : public QQuickPathElement
82{
84
85 Q_PROPERTY(qreal x READ x WRITE setX NOTIFY xChanged)
86 Q_PROPERTY(qreal y READ y WRITE setY NOTIFY yChanged)
87 Q_PROPERTY(qreal relativeX READ relativeX WRITE setRelativeX NOTIFY relativeXChanged)
88 Q_PROPERTY(qreal relativeY READ relativeY WRITE setRelativeY NOTIFY relativeYChanged)
91public:
92 QQuickCurve(QObject *parent=nullptr) : QQuickPathElement(parent) {}
93
94 qreal x() const;
95 void setX(qreal x);
96 bool hasX();
97
98 qreal y() const;
99 void setY(qreal y);
100 bool hasY();
101
102 qreal relativeX() const;
103 void setRelativeX(qreal x);
104 bool hasRelativeX();
105
106 qreal relativeY() const;
107 void setRelativeY(qreal y);
108 bool hasRelativeY();
109
110 virtual void addToPath(QPainterPath &, const QQuickPathData &) {}
111
113 void xChanged();
114 void yChanged();
117
118private:
119 QQmlNullableValue<qreal> _x;
120 QQmlNullableValue<qreal> _y;
121 QQmlNullableValue<qreal> _relativeX;
122 QQmlNullableValue<qreal> _relativeY;
123};
124
125class Q_QUICK_EXPORT QQuickPathLine : public QQuickCurve
126{
128 QML_NAMED_ELEMENT(PathLine)
130public:
131 QQuickPathLine(QObject *parent=nullptr) : QQuickCurve(parent) {}
132
133 void addToPath(QPainterPath &path, const QQuickPathData &) override;
134};
135
136class Q_QUICK_EXPORT QQuickPathMove : public QQuickCurve
137{
139 QML_NAMED_ELEMENT(PathMove)
141public:
142 QQuickPathMove(QObject *parent=nullptr) : QQuickCurve(parent) {}
143
144 void addToPath(QPainterPath &path, const QQuickPathData &) override;
145};
146
147class Q_QUICK_EXPORT QQuickPathQuad : public QQuickCurve
148{
150
151 Q_PROPERTY(qreal controlX READ controlX WRITE setControlX NOTIFY controlXChanged)
152 Q_PROPERTY(qreal controlY READ controlY WRITE setControlY NOTIFY controlYChanged)
153 Q_PROPERTY(qreal relativeControlX READ relativeControlX WRITE setRelativeControlX NOTIFY relativeControlXChanged)
154 Q_PROPERTY(qreal relativeControlY READ relativeControlY WRITE setRelativeControlY NOTIFY relativeControlYChanged)
155
156 QML_NAMED_ELEMENT(PathQuad)
158public:
159 QQuickPathQuad(QObject *parent=nullptr) : QQuickCurve(parent) {}
160
161 qreal controlX() const;
162 void setControlX(qreal x);
163
164 qreal controlY() const;
165 void setControlY(qreal y);
166
167 qreal relativeControlX() const;
168 void setRelativeControlX(qreal x);
169 bool hasRelativeControlX();
170
171 qreal relativeControlY() const;
172 void setRelativeControlY(qreal y);
173 bool hasRelativeControlY();
174
175 void addToPath(QPainterPath &path, const QQuickPathData &) override;
176
182
183private:
184 qreal _controlX = 0;
185 qreal _controlY = 0;
186 QQmlNullableValue<qreal> _relativeControlX;
187 QQmlNullableValue<qreal> _relativeControlY;
188};
189
190class Q_QUICK_EXPORT QQuickPathCubic : public QQuickCurve
191{
193
194 Q_PROPERTY(qreal control1X READ control1X WRITE setControl1X NOTIFY control1XChanged)
195 Q_PROPERTY(qreal control1Y READ control1Y WRITE setControl1Y NOTIFY control1YChanged)
196 Q_PROPERTY(qreal control2X READ control2X WRITE setControl2X NOTIFY control2XChanged)
197 Q_PROPERTY(qreal control2Y READ control2Y WRITE setControl2Y NOTIFY control2YChanged)
198 Q_PROPERTY(qreal relativeControl1X READ relativeControl1X WRITE setRelativeControl1X NOTIFY relativeControl1XChanged)
199 Q_PROPERTY(qreal relativeControl1Y READ relativeControl1Y WRITE setRelativeControl1Y NOTIFY relativeControl1YChanged)
200 Q_PROPERTY(qreal relativeControl2X READ relativeControl2X WRITE setRelativeControl2X NOTIFY relativeControl2XChanged)
201 Q_PROPERTY(qreal relativeControl2Y READ relativeControl2Y WRITE setRelativeControl2Y NOTIFY relativeControl2YChanged)
202 QML_NAMED_ELEMENT(PathCubic)
204public:
205 QQuickPathCubic(QObject *parent=nullptr) : QQuickCurve(parent) {}
206
207 qreal control1X() const;
208 void setControl1X(qreal x);
209
210 qreal control1Y() const;
211 void setControl1Y(qreal y);
212
213 qreal control2X() const;
214 void setControl2X(qreal x);
215
216 qreal control2Y() const;
217 void setControl2Y(qreal y);
218
219 qreal relativeControl1X() const;
220 void setRelativeControl1X(qreal x);
221 bool hasRelativeControl1X();
222
223 qreal relativeControl1Y() const;
224 void setRelativeControl1Y(qreal y);
225 bool hasRelativeControl1Y();
226
227 qreal relativeControl2X() const;
228 void setRelativeControl2X(qreal x);
229 bool hasRelativeControl2X();
230
231 qreal relativeControl2Y() const;
232 void setRelativeControl2Y(qreal y);
233 bool hasRelativeControl2Y();
234
235 void addToPath(QPainterPath &path, const QQuickPathData &) override;
236
246
247private:
248 qreal _control1X = 0;
249 qreal _control1Y = 0;
250 qreal _control2X = 0;
251 qreal _control2Y = 0;
252 QQmlNullableValue<qreal> _relativeControl1X;
253 QQmlNullableValue<qreal> _relativeControl1Y;
254 QQmlNullableValue<qreal> _relativeControl2X;
255 QQmlNullableValue<qreal> _relativeControl2Y;
256};
257
258class Q_QUICK_EXPORT QQuickPathCatmullRomCurve : public QQuickCurve
259{
261 QML_NAMED_ELEMENT(PathCurve)
263public:
264 QQuickPathCatmullRomCurve(QObject *parent=nullptr) : QQuickCurve(parent) {}
265
266 void addToPath(QPainterPath &path, const QQuickPathData &) override;
267};
268
269class Q_QUICK_EXPORT QQuickPathArc : public QQuickCurve
270{
272 Q_PROPERTY(qreal radiusX READ radiusX WRITE setRadiusX NOTIFY radiusXChanged)
273 Q_PROPERTY(qreal radiusY READ radiusY WRITE setRadiusY NOTIFY radiusYChanged)
274 Q_PROPERTY(bool useLargeArc READ useLargeArc WRITE setUseLargeArc NOTIFY useLargeArcChanged)
275 Q_PROPERTY(ArcDirection direction READ direction WRITE setDirection NOTIFY directionChanged)
276 Q_PROPERTY(qreal xAxisRotation READ xAxisRotation WRITE setXAxisRotation NOTIFY xAxisRotationChanged REVISION(2, 9))
277 QML_NAMED_ELEMENT(PathArc)
279
280public:
281 QQuickPathArc(QObject *parent=nullptr)
282 : QQuickCurve(parent) {}
283
284 enum ArcDirection { Clockwise, Counterclockwise };
285 Q_ENUM(ArcDirection)
286
287 qreal radiusX() const;
288 void setRadiusX(qreal);
289
290 qreal radiusY() const;
291 void setRadiusY(qreal);
292
293 bool useLargeArc() const;
294 void setUseLargeArc(bool);
295
296 ArcDirection direction() const;
297 void setDirection(ArcDirection direction);
298
299 qreal xAxisRotation() const;
300 void setXAxisRotation(qreal rotation);
301
302 void addToPath(QPainterPath &path, const QQuickPathData &) override;
303
309 Q_REVISION(2, 9) void xAxisRotationChanged();
310
311private:
312 qreal _radiusX = 0;
313 qreal _radiusY = 0;
314 bool _useLargeArc = false;
315 ArcDirection _direction = Clockwise;
316 qreal _xAxisRotation = 0;
317};
318
319class Q_QUICK_EXPORT QQuickPathAngleArc : public QQuickCurve
320{
322 Q_PROPERTY(qreal centerX READ centerX WRITE setCenterX NOTIFY centerXChanged)
323 Q_PROPERTY(qreal centerY READ centerY WRITE setCenterY NOTIFY centerYChanged)
324 Q_PROPERTY(qreal radiusX READ radiusX WRITE setRadiusX NOTIFY radiusXChanged)
325 Q_PROPERTY(qreal radiusY READ radiusY WRITE setRadiusY NOTIFY radiusYChanged)
326 Q_PROPERTY(qreal startAngle READ startAngle WRITE setStartAngle NOTIFY startAngleChanged)
327 Q_PROPERTY(qreal sweepAngle READ sweepAngle WRITE setSweepAngle NOTIFY sweepAngleChanged)
328 Q_PROPERTY(bool moveToStart READ moveToStart WRITE setMoveToStart NOTIFY moveToStartChanged)
329
330 QML_NAMED_ELEMENT(PathAngleArc)
332
333public:
335 : QQuickCurve(parent) {}
336
337 qreal centerX() const;
338 void setCenterX(qreal);
339
340 qreal centerY() const;
341 void setCenterY(qreal);
342
343 qreal radiusX() const;
344 void setRadiusX(qreal);
345
346 qreal radiusY() const;
347 void setRadiusY(qreal);
348
349 qreal startAngle() const;
350 void setStartAngle(qreal);
351
352 qreal sweepAngle() const;
353 void setSweepAngle(qreal);
354
355 bool moveToStart() const;
356 void setMoveToStart(bool);
357
358 void addToPath(QPainterPath &path, const QQuickPathData &) override;
359
368
369private:
370 qreal _centerX = 0;
371 qreal _centerY = 0;
372 qreal _radiusX = 0;
373 qreal _radiusY = 0;
374 qreal _startAngle = 0;
375 qreal _sweepAngle = 0;
376 bool _moveToStart = true;
377};
378
379class Q_QUICK_EXPORT QQuickPathSvg : public QQuickCurve
380{
382 Q_PROPERTY(QString path READ path WRITE setPath NOTIFY pathChanged)
383 QML_NAMED_ELEMENT(PathSvg)
385public:
386 QQuickPathSvg(QObject *parent=nullptr) : QQuickCurve(parent) {}
387
388 QString path() const;
389 void setPath(const QString &path);
390
391 void addToPath(QPainterPath &path, const QQuickPathData &) override;
392
395
396private:
397 QString _path;
398};
399
400class Q_QUICK_EXPORT QQuickPathPercent : public QQuickPathElement
401{
403 Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY valueChanged)
404 QML_NAMED_ELEMENT(PathPercent)
406public:
407 QQuickPathPercent(QObject *parent=nullptr) : QQuickPathElement(parent) {}
408
409 qreal value() const;
410 void setValue(qreal value);
411
414
415private:
416 qreal _value = 0;
417};
418
419class Q_QUICK_EXPORT QQuickPathPolyline : public QQuickCurve
420{
422 Q_PROPERTY(QPointF start READ start NOTIFY startChanged)
423 Q_PROPERTY(QVariant path READ path WRITE setPath NOTIFY pathChanged)
424 QML_NAMED_ELEMENT(PathPolyline)
426public:
427 QQuickPathPolyline(QObject *parent=nullptr);
428
429 QVariant path() const;
430 void setPath(const QVariant &path);
431 void setPath(const QVector<QPointF> &path);
432 QPointF start() const;
433 void addToPath(QPainterPath &path, const QQuickPathData &data) override;
434
436 void pathChanged();
437 void startChanged();
438
439private:
440 QVector<QPointF> m_path;
441};
442
443class Q_QUICK_EXPORT QQuickPathMultiline : public QQuickCurve
444{
446 Q_PROPERTY(QPointF start READ start NOTIFY startChanged)
447 Q_PROPERTY(QVariant paths READ paths WRITE setPaths NOTIFY pathsChanged)
448 QML_NAMED_ELEMENT(PathMultiline)
450public:
451 QQuickPathMultiline(QObject *parent=nullptr);
452
453 QVariant paths() const;
454 void setPaths(const QVariant &paths);
455 void setPaths(const QVector<QVector<QPointF>> &paths);
456 QPointF start() const;
457 void addToPath(QPainterPath &path, const QQuickPathData &) override;
458
460 void pathsChanged();
461 void startChanged();
462
463private:
464 QPointF absolute(const QPointF &relative) const;
465
466 QVector<QVector<QPointF>> m_paths;
467};
468
479
481class Q_QUICK_EXPORT QQuickPath : public QObject, public QQmlParserStatus
482{
484
486 Q_PROPERTY(QQmlListProperty<QQuickPathElement> pathElements READ pathElements)
487 Q_PROPERTY(qreal startX READ startX WRITE setStartX NOTIFY startXChanged)
488 Q_PROPERTY(qreal startY READ startY WRITE setStartY NOTIFY startYChanged)
489 Q_PROPERTY(bool closed READ isClosed NOTIFY changed)
490 Q_PROPERTY(bool simplify READ simplify WRITE setSimplify NOTIFY simplifyChanged REVISION(6, 6) FINAL)
491 Q_PROPERTY(QSizeF scale READ scale WRITE setScale NOTIFY scaleChanged REVISION(2, 14))
492 Q_CLASSINFO("DefaultProperty", "pathElements")
495public:
496 QQuickPath(QObject *parent=nullptr);
497 ~QQuickPath() override;
498
500
501 qreal startX() const;
502 void setStartX(qreal x);
503 bool hasStartX() const;
504
505 qreal startY() const;
506 void setStartY(qreal y);
507 bool hasStartY() const;
508
509 bool isClosed() const;
510
511 QPainterPath path() const;
512 QStringList attributes() const;
513 qreal attributeAt(const QString &, qreal) const;
514 Q_REVISION(2, 14) Q_INVOKABLE QPointF pointAtPercent(qreal t) const;
515 QPointF sequentialPointAt(qreal p, qreal *angle = nullptr) const;
516 void invalidateSequentialHistory() const;
517
518 QSizeF scale() const;
519 void setScale(const QSizeF &scale);
520
521 bool simplify() const;
522 void setSimplify(bool s);
523
525 void changed();
526 void startXChanged();
527 void startYChanged();
528 Q_REVISION(6, 6) void simplifyChanged();
529 Q_REVISION(2, 14) void scaleChanged();
530
531protected:
532 QQuickPath(QQuickPathPrivate &dd, QObject *parent = nullptr);
533 void componentComplete() override;
534 void classBegin() override;
535 void disconnectPathElements();
536 void connectPathElements();
537 void gatherAttributes();
538
539 // pathElements property
541 static void pathElements_append(QQmlListProperty<QQuickPathElement> *, QQuickPathElement *);
542 static qsizetype pathElements_count(QQmlListProperty<QQuickPathElement> *);
543 static void pathElements_clear(QQmlListProperty<QQuickPathElement> *);
544
546 void processPath();
547
548private:
549 struct AttributePoint {
550 AttributePoint() {}
551 AttributePoint(const AttributePoint &other)
552 : percent(other.percent), scale(other.scale), origpercent(other.origpercent), values(other.values) {}
553 AttributePoint &operator=(const AttributePoint &other) {
554 percent = other.percent; scale = other.scale; origpercent = other.origpercent; values = other.values; return *this;
555 }
556 qreal percent = 0; //massaged percent along the painter path
557 qreal scale = 1;
558 qreal origpercent = 0; //'real' percent along the painter path
559 QHash<QString, qreal> values;
560 };
561
562 void interpolate(int idx, const QString &name, qreal value);
563 void endpoint(const QString &name);
564 void createPointCache() const;
565
566 static void interpolate(QList<AttributePoint> &points, int idx, const QString &name, qreal value);
567 static void endpoint(QList<AttributePoint> &attributePoints, const QString &name);
568 static QPointF forwardsPointAt(const QPainterPath &path, const qreal &pathLength, const QList<AttributePoint> &attributePoints, QQuickCachedBezier &prevBez, qreal p, qreal *angle = nullptr);
569 static QPointF backwardsPointAt(const QPainterPath &path, const qreal &pathLength, const QList<AttributePoint> &attributePoints, QQuickCachedBezier &prevBez, qreal p, qreal *angle = nullptr);
570
571private:
572 Q_DISABLE_COPY(QQuickPath)
573 Q_DECLARE_PRIVATE(QQuickPath)
574 friend class QQuickPathAnimationUpdater;
575
576public:
577 QPainterPath createPath(const QPointF &startPoint, const QPointF &endPoint, const QStringList &attributes, qreal &pathLength, QList<AttributePoint> &attributePoints, bool *closed = nullptr);
578 QPainterPath createShapePath(const QPointF &startPoint, const QPointF &endPoint, qreal &pathLength, bool *closed = nullptr);
579 static QPointF sequentialPointAt(const QPainterPath &path, const qreal &pathLength, const QList<AttributePoint> &attributePoints, QQuickCachedBezier &prevBez, qreal p, qreal *angle = nullptr);
580};
581
582class Q_QUICK_EXPORT QQuickPathText : public QQuickPathElement
583{
585 Q_PROPERTY(qreal x READ x WRITE setX NOTIFY xChanged)
586 Q_PROPERTY(qreal y READ y WRITE setY NOTIFY yChanged)
587 Q_PROPERTY(qreal width READ width NOTIFY changed)
588 Q_PROPERTY(qreal height READ height NOTIFY changed)
590 Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged)
591 QML_NAMED_ELEMENT(PathText)
593public:
603
604 void addToPath(QPainterPath &path);
605
606 qreal x() const { return _x; }
607 qreal y() const { return _y; }
608 QString text() const { return _text; }
609 QFont font() const { return _font; }
610
612 {
613 if (qFuzzyCompare(_x, x))
614 return;
615
616 _x = x;
617 Q_EMIT xChanged();
618 }
619
621 {
622 if (qFuzzyCompare(_y, y))
623 return;
624
625 _y = y;
626 Q_EMIT yChanged();
627 }
628
629 void setText(const QString &text)
630 {
631 if (text == _text)
632 return;
633
634 _text = text;
636 }
637
638 void setFont(const QFont &font)
639 {
640 if (font == _font)
641 return;
642
643 _font = font;
644 Q_EMIT fontChanged();
645 }
646
647 qreal width() const
648 {
649 updatePath();
650 return _path.boundingRect().width();
651 }
652
653 qreal height() const
654 {
655 updatePath();
656 return _path.boundingRect().height();
657 }
658
660 void xChanged();
661 void yChanged();
664
665private Q_SLOTS:
666 void invalidate()
667 {
668 _path.clear();
669 }
670
671private:
672 void updatePath() const;
673
674 QString _text;
675 qreal _x = qreal(0.0);
676 qreal _y = qreal(0.0);
677 QFont _font;
678
679 mutable QPainterPath _path;
680};
681
683
684#endif // QQUICKPATH_H
\reentrant
Definition qfont.h:22
Definition qlist.h:75
\inmodule QtCore
Definition qobject.h:103
\inmodule QtGui
\inmodule QtCore\reentrant
Definition qpoint.h:217
The QQmlListProperty class allows applications to expose list-like properties of QObject-derived clas...
Definition qqmllist.h:24
The QQmlParserStatus class provides updates on the QML parser state.
void relativeXChanged()
virtual void addToPath(QPainterPath &, const QQuickPathData &)
void xChanged()
void yChanged()
void relativeYChanged()
void directionChanged()
void radiusXChanged()
void radiusYChanged()
void useLargeArcChanged()
Q_REVISION(2, 9) void xAxisRotationChanged()
QQuickPathCatmullRomCurve(QObject *parent=nullptr)
void control1YChanged()
void relativeControl1XChanged()
void control2XChanged()
void control2YChanged()
void control1XChanged()
void relativeControl2YChanged()
void relativeControl1YChanged()
void relativeControl2XChanged()
QQuickPathElement(QObject *parent=nullptr)
QQuickPathLine(QObject *parent=nullptr)
QQuickPathMove(QObject *parent=nullptr)
void controlXChanged()
void relativeControlYChanged()
void controlYChanged()
void relativeControlXChanged()
void pathChanged()
qreal y() const
QFont font() const
void textChanged()
qreal width() const
qreal height() const
void setText(const QString &text)
void setFont(const QFont &font)
QString text() const
void fontChanged()
void setY(qreal y)
void setX(qreal x)
qreal x() const
\inmodule QtCore
Definition qsize.h:208
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qvariant.h:65
QString text
void textChanged(const QString &newText)
employee setName("Richard Schmit")
direction
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
bool qFuzzyCompare(qfloat16 p1, qfloat16 p2) noexcept
Definition qfloat16.h:333
static qreal interpolate(const QPair< QGraphicsAnchorLayoutPrivate::Interval, qreal > &factor, qreal min, qreal minPref, qreal pref, qreal maxPref, qreal max)
GLenum GLsizei GLsizei GLint * values
[15]
GLint GLint GLint GLint GLint x
[0]
GLint GLsizei GLsizei height
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLint GLsizei width
GLsizei const GLuint * paths
GLfloat angle
GLuint start
GLuint name
GLint y
GLfixed GLfixed GLint GLint GLfixed points
GLdouble s
[6]
Definition qopenglext.h:235
GLdouble GLdouble t
Definition qopenglext.h:243
GLsizei const GLchar *const * path
GLfloat GLfloat p
[1]
GLenum GLenum GLenum GLenum GLenum scale
#define QML_ANONYMOUS
#define QML_NAMED_ELEMENT(NAME)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
#define QT_REQUIRE_CONFIG(feature)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_REVISION(...)
#define Q_CLASSINFO(name, value)
#define Q_EMIT
#define Q_INVOKABLE
#define Q_INTERFACES(x)
#define Q_SLOTS
#define Q_SIGNALS
ptrdiff_t qsizetype
Definition qtypes.h:165
double qreal
Definition qtypes.h:187
settings setValue("DataPump/bgcolor", color)
connect(quitButton, &QPushButton::clicked, &app, &QCoreApplication::quit, Qt::QueuedConnection)
p setX(p.x()+1)
QSharedPointer< T > other(t)
[5]
insertRed setText("insert red text")
QList< QQuickCurve * > curves