QtBase  v6.3.1
doc_src_properties.cpp
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2016 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the documentation of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:BSD$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and The Qt Company. For licensing terms
14 ** and conditions see https://www.qt.io/terms-conditions. For further
15 ** information use the contact form at https://www.qt.io/contact-us.
16 **
17 ** BSD License Usage
18 ** Alternatively, you may use this file under the terms of the BSD license
19 ** as follows:
20 **
21 ** "Redistribution and use in source and binary forms, with or without
22 ** modification, are permitted provided that the following conditions are
23 ** met:
24 ** * Redistributions of source code must retain the above copyright
25 ** notice, this list of conditions and the following disclaimer.
26 ** * Redistributions in binary form must reproduce the above copyright
27 ** notice, this list of conditions and the following disclaimer in
28 ** the documentation and/or other materials provided with the
29 ** distribution.
30 ** * Neither the name of The Qt Company Ltd nor the names of its
31 ** contributors may be used to endorse or promote products derived
32 ** from this software without specific prior written permission.
33 **
34 **
35 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
36 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
37 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
38 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
39 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
42 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
43 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
44 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
45 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
46 **
47 ** $QT_END_LICENSE$
48 **
49 ****************************************************************************/
50 
53  (READ getFunction [WRITE setFunction] |
54  MEMBER memberName [(READ getFunction | WRITE setFunction)])
55  [RESET resetFunction]
56  [NOTIFY notifySignal]
57  [REVISION int | REVISION(int[, int])]
58  [DESIGNABLE bool]
59  [SCRIPTABLE bool]
60  [STORED bool]
61  [USER bool]
62  [BINDABLE bindableProperty]
63  [CONSTANT]
64  [FINAL]
65  [REQUIRED])
67 
68 
69 Q_PROPERTY(bool focus READ hasFocus)
71 Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)
72 Q_PROPERTY(QCursor cursor READ cursor WRITE setCursor RESET unsetCursor)
74 
75 
76 Q_PROPERTY(QDate date READ getDate WRITE setDate)
79 
80 
83 QObject *object = button;
84 
85 button->setDown(true);
86 object->setProperty("down", true);
88 
89 
91 QObject *object = ...
92 const QMetaObject *metaobject = object->metaObject();
93 int count = metaobject->propertyCount();
94 for (int i=0; i<count; ++i) {
95  QMetaProperty metaproperty = metaobject->property(i);
96  const char *name = metaproperty.name();
97  QVariant value = object->property(name);
98  ...
99 }
101 
102 
104 class MyClass : public QObject
105 {
106  Q_OBJECT
108 
109 public:
110  MyClass(QObject *parent = nullptr);
112 
115 
117  {
118  m_priority = priority;
120  }
122  { return m_priority; }
123 
124 signals:
126 
127 private:
128  Priority m_priority;
129 };
131 
132 
135 QObject *object = myinstance;
136 
138 object->setProperty("priority", "VeryHigh");
140 
141 
143 Q_CLASSINFO("Version", "3.0.0")
145 
147  Q_PROPERTY(QColor color MEMBER m_color NOTIFY colorChanged)
148  Q_PROPERTY(qreal spacing MEMBER m_spacing NOTIFY spacingChanged)
149  Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged)
150  ...
151 signals:
152  void colorChanged();
154  void textChanged(const QString &newText);
155 
156 private:
157  QColor m_color;
158  qreal m_spacing;
159  QString m_text;
161 
small capitals from c petite p scientific i
[1]
Definition: afcover.h:80
Priority priority() const
MyClass(QObject *parent=nullptr)
void setPriority(Priority priority)
Priority priority
void priorityChanged(Priority)
The QColor class provides colors based on RGB, HSV or CMYK values.
Definition: qcolor.h:67
The QCursor class provides a mouse cursor with an arbitrary shape.
Definition: qcursor.h:81
The QDate class provides date functions.
Definition: qdatetime.h:64
The QMetaProperty class provides meta-data about a property.
Definition: qmetaobject.h:277
const char * name() const
The QObject class is the base class of all Qt objects.
Definition: qobject.h:125
QObject * parent() const
Definition: qobject.h:409
The QPushButton widget provides a command button.
Definition: qpushbutton.h:56
The QString class provides a Unicode character string.
Definition: qstring.h:388
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:95
QPushButton
[1]
void spacingChanged()
QString text
[meta data]
QDate date
[1]
qreal spacing
QPushButton * button
[2]
void colorChanged()
bool focus
[0]
QCursor cursor
int count
type name READ getFunction WRITE setFunction
[0]
void textChanged(const QString &newText)
MyClass * myinstance
[5]
auto it unsigned count const
Definition: hb-iter.hh:848
@ STORED
Definition: infutil.h:17
void
Definition: png.h:1080
EGLOutputLayerEXT EGLint EGLAttrib value
QT_END_INCLUDE_NAMESPACE typedef double qreal
Definition: qglobal.h:341
GLenum type
Definition: qopengl.h:270
GLenum GLenum GLsizei count
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLuint color
[2]
GLuint name
#define Q_ENUM(x)
Definition: qtmetamacros.h:104
#define Q_PROPERTY(...)
Definition: qtmetamacros.h:92
#define Q_OBJECT
Definition: qtmetamacros.h:158
#define Q_CLASSINFO(name, value)
Definition: qtmetamacros.h:88
#define signals
Definition: qtmetamacros.h:77
#define emit
Definition: qtmetamacros.h:85
item setCursor(Qt::IBeamCursor)
[1]
QList< QString > MyClass
The QMetaObject class contains meta-information about Qt objects.
Definition: qobjectdefs.h:165
int propertyCount() const
QMetaProperty property(int index) const
#define private
Definition: main.cpp:37