aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/doc/src/qmllint/required.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/doc/src/qmllint/required.qdoc')
-rw-r--r--src/qml/doc/src/qmllint/required.qdoc65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/qml/doc/src/qmllint/required.qdoc b/src/qml/doc/src/qmllint/required.qdoc
new file mode 100644
index 0000000000..6252ddef2d
--- /dev/null
+++ b/src/qml/doc/src/qmllint/required.qdoc
@@ -0,0 +1,65 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+\page qmllint-warnings-and-errors-required.html
+\ingroup qmllint-warnings-and-errors
+
+\title Component is Missing a Required Property
+\brief A component's required property was not bound.
+
+\section1 Component is Missing a Required Property
+
+\section2 What happened?
+The \l{QML Object Attributes#required-properties}{required property} of a component was not set.
+
+
+\section2 Why is this bad?
+QML applications where components miss required properties will misbehave: they will not
+start at all if a missing required property is detected statically. Dynamically created components
+with missing required properties will not be created at runtime: they will be null instead.
+
+\section2 Example
+\qml
+import QtQuick
+
+Item {
+ component RepeatMe: Item {
+ required property int index;
+ required property int helloWorld;
+ }
+
+ RepeatMe {} // not ok: required properties index and helloWorld not set
+
+ Repeater {
+ model: 10
+ RepeatMe {} // not ok: required property index set by Repeater, but not helloWorld
+ }
+}
+\endqml
+You can fix this warning by setting the required properties
+\qml
+import QtQuick
+
+Item {
+ component RepeatMe: Item {
+ required property int index;
+ required property int helloWorld;
+ }
+
+ RepeatMe {
+ index: 0
+ helloWorld: 42
+ } // ok: all required properties were set
+
+ Repeater {
+ model: 10
+ RepeatMe {
+ helloWorld: index * 2 + 1
+ } // ok: all required properties were set: index by the Repeater and helloWorld by the user
+ }
+}
+\endqml
+
+\sa {QML Coding Conventions#required-properties}{QML Coding Conventions - Required Properties}
+*/