summaryrefslogtreecommitdiffstats
path: root/tests/manual/hierarchy/doc/src/hierarchy.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/hierarchy/doc/src/hierarchy.qdoc')
-rw-r--r--tests/manual/hierarchy/doc/src/hierarchy.qdoc65
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/manual/hierarchy/doc/src/hierarchy.qdoc b/tests/manual/hierarchy/doc/src/hierarchy.qdoc
new file mode 100644
index 0000000..fbfaca9
--- /dev/null
+++ b/tests/manual/hierarchy/doc/src/hierarchy.qdoc
@@ -0,0 +1,65 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+ \page qaxserver-demo-hierarchy.html
+ \title Qt Widget Hierarchy
+
+ \input examples/hierarchy-demo.qdocinc
+*/
+
+/*!
+ \example activeqt/hierarchy
+ \title Hierarchy Example (ActiveQt)
+ \ingroup activeqt-examples
+
+ \brief The Hierarchy example is shows how to write an in-process ActiveX
+ control. The control is a QWidget subclass with child widgets
+ that are accessible as sub-types.
+
+ \snippet activeqt/hierarchy/objects.h 0
+ The \c QParentWidget class provides slots to create a widget
+ with a name, and to return a pointer to a named widget. The class
+ declaration uses \c Q_CLASSINFO() to provide the COM identifiers for
+ this class.
+
+ \snippet activeqt/hierarchy/objects.cpp 0
+ The constructor of \c QParentWidget creates a vertical box layout.
+ New child widgets are automatically added to the layout.
+
+ \snippet activeqt/hierarchy/objects.cpp 1
+ The \c createSubWidget slot creates a new \c QSubWidget with
+ the name provided in the parameter, and sets the label to that
+ name. The widget is also shown explicitly.
+
+ \snippet activeqt/hierarchy/objects.cpp 2
+ The \c subWidget slot uses the \c QObject::findChild() function and
+ returns the first child of type \c QSubWidget that has the requested
+ name.
+
+ \snippet activeqt/hierarchy/objects.h 1
+ The \c QSubWidget class has a single string-property \c label,
+ and implements the paintEvent to draw the label. The class uses
+ again \c Q_CLASSINFO to provide the COM identifiers, and also sets
+ the \e ToSuperClass attribute to \e QSubWidget, to ensure that only
+ no slots of any superclasses (i.e. QWidget) are exposed.
+
+ \snippet activeqt/hierarchy/objects.cpp 3
+ \snippet activeqt/hierarchy/objects.cpp 4
+ The implementation of the \c QSubWidget class is self-explanatory.
+
+ \snippet activeqt/hierarchy/main.cpp 0
+ The classes are then exported using a QAxFactory. \c QParentWidget is
+ exported as a full class (which can be created ), while \c QSubWidget is
+ only exported as a type, which can only be created indirectly through
+ APIs of \c QParentWidget.
+
+ To build the example you must first build the QAxServer library.
+ Then run qmake and your make tool in \c activeqt/hierarchy.
+
+ The \l{qaxserver-demo-hierarchy.html}{demonstration} requires
+ your WebBrowser to support ActiveX controls, and scripting to be
+ enabled.
+
+ \snippet activeqt/hierarchy/doc/snippets/hierarchy-demo-snippet.qdoc script
+*/