summaryrefslogtreecommitdiffstats
path: root/examples/designer/doc/src/calculatorform_mi.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/designer/doc/src/calculatorform_mi.qdoc')
-rw-r--r--examples/designer/doc/src/calculatorform_mi.qdoc74
1 files changed, 74 insertions, 0 deletions
diff --git a/examples/designer/doc/src/calculatorform_mi.qdoc b/examples/designer/doc/src/calculatorform_mi.qdoc
new file mode 100644
index 000000000..7cf0bca16
--- /dev/null
+++ b/examples/designer/doc/src/calculatorform_mi.qdoc
@@ -0,0 +1,74 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+ \example calculatorform_mi
+ \examplecategory {Desktop}
+ \meta tags {widgets,designer}
+ \ingroup examples-designer
+ \title Calculator Form/Multiple Inheritance
+
+ \brief Using a form created with \QD in an application.
+
+ The Multiple Inheritance Example shows how to use a form created with
+ \l{Qt Widgets Designer} in an application by subclassing both QWidget and the user
+ interface class, which is \c{Ui::CalculatorForm}.
+
+ \image calculatorform-example.webp
+
+ To subclass the \c calculatorform.ui file and ensure that \c qmake
+ processes it with the \c uic, we have to include \c calculatorform.ui
+ in the \c .pro file, as shown below:
+
+ \snippet calculatorform_mi/calculatorform_mi.pro 0
+
+ When the project is compiled, the \c uic will generate a corresponding
+ \c ui_calculatorform.h.
+
+ \section1 CalculatorForm Definition
+
+ In the \c CalculatorForm definition, we include the \c ui_calculatorform.h
+ that was generated earlier.
+
+ \snippet calculatorform_mi/calculatorform.h 0
+
+ As mentioned earlier, the class is a subclass of both QWidget and
+ \c{Ui::CalculatorForm}.
+
+ \snippet calculatorform_mi/calculatorform.h 1
+
+ Two slots are defined according to the \l{Automatic Connections}
+ {automatic connection} naming convention required by \c uic. This is
+ to ensure that \l{QMetaObject}'s auto-connection facilities connect
+ all the signals and slots involved automatically.
+
+ \section1 CalculatorForm Implementation
+
+ In the constructor, we call \c setupUi() to load the user interface file.
+ Note that setupUi is a method of \c Ui::CalculatorForm.
+
+ \snippet calculatorform_mi/calculatorform.cpp 0
+
+ We include two slots, \c{on_inputSpinBox1_valueChanged()} and
+ \c{on_inputSpinBox2_valueChanged()}. These slots respond to the
+ \l{QSpinBox::valueChanged()}{valueChanged()} signal that both spin boxes
+ emit. Whenever there is a change in one spin box's value, we take that
+ value and add it to whatever value the other spin box has.
+
+ \snippet calculatorform_mi/calculatorform.cpp 1
+ \codeline
+ \snippet calculatorform_mi/calculatorform.cpp 2
+
+ \section1 \c main() Function
+
+ The \c main() function instantiates QApplication and \c CalculatorForm.
+ The \c calculator object is displayed by invoking the \l{QWidget::show()}
+ {show()} function.
+
+ \snippet calculatorform_mi/main.cpp 0
+
+ There are various approaches to include forms into applications. The
+ Multiple Inheritance approach is just one of them. See
+ \l{Using a Designer UI File in Your Application} for more information on
+ the other approaches available.
+*/