doc/src/examples/multipleinheritance.qdoc
branchRCL_3
changeset 7 3f74d0d4af4c
equal deleted inserted replaced
6:dee5afe5301f 7:3f74d0d4af4c
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     4 ** All rights reserved.
       
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
       
     6 **
       
     7 ** This file is part of the documentation of the Qt Toolkit.
       
     8 **
       
     9 ** $QT_BEGIN_LICENSE:LGPL$
       
    10 ** No Commercial Usage
       
    11 ** This file contains pre-release code and may not be distributed.
       
    12 ** You may use this file in accordance with the terms and conditions
       
    13 ** contained in the Technology Preview License Agreement accompanying
       
    14 ** this package.
       
    15 **
       
    16 ** GNU Lesser General Public License Usage
       
    17 ** Alternatively, this file may be used under the terms of the GNU Lesser
       
    18 ** General Public License version 2.1 as published by the Free Software
       
    19 ** Foundation and appearing in the file LICENSE.LGPL included in the
       
    20 ** packaging of this file.  Please review the following information to
       
    21 ** ensure the GNU Lesser General Public License version 2.1 requirements
       
    22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
       
    23 **
       
    24 ** In addition, as a special exception, Nokia gives you certain additional
       
    25 ** rights.  These rights are described in the Nokia Qt LGPL Exception
       
    26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
       
    27 **
       
    28 ** If you have questions regarding the use of this file, please contact
       
    29 ** Nokia at qt-info@nokia.com.
       
    30 **
       
    31 **
       
    32 **
       
    33 **
       
    34 **
       
    35 **
       
    36 **
       
    37 **
       
    38 ** $QT_END_LICENSE$
       
    39 **
       
    40 ****************************************************************************/
       
    41 
       
    42 /*!
       
    43     \example uitools/multipleinheritance
       
    44     \title Multiple Inheritance Example
       
    45 
       
    46     The Multiple Inheritance Example shows how to use a form created with \QD
       
    47     in an application by subclassing both QWidget and the user interface
       
    48     class, which is \c{Ui::CalculatorForm}.
       
    49 
       
    50     \image multipleinheritance-example.png
       
    51 
       
    52     To subclass the \c calculatorform.ui file and ensure that \c qmake
       
    53     processes it with the \c uic, we have to include \c calculatorform.ui
       
    54     in the \c .pro file, as shown below:
       
    55 
       
    56     \snippet examples/uitools/multipleinheritance/multipleinheritance.pro 0
       
    57 
       
    58     When the project is compiled, the \c uic will generate a corresponding
       
    59     \c ui_calculatorform.h.
       
    60 
       
    61     \section1 CalculatorForm Definition
       
    62 
       
    63     In the \c CalculatorForm definition, we include the \c ui_calculatorform.h
       
    64     that was generated earlier.
       
    65 
       
    66     \snippet examples/uitools/multipleinheritance/calculatorform.h 0
       
    67 
       
    68     As mentioned earlier, the class is a subclass of both QWidget and
       
    69     \c{Ui::CalculatorForm}.
       
    70 
       
    71     \snippet examples/uitools/multipleinheritance/calculatorform.h 1
       
    72 
       
    73     Two slots are defined according to the \l{Automatic Connections}
       
    74     {automatic connection} naming convention required by \c uic. This is
       
    75     to ensure that \l{QMetaObject}'s auto-connection facilities connect
       
    76     all the signals and slots involved automatically.
       
    77 
       
    78     \section1 CalculatorForm Implementation
       
    79 
       
    80     In the constructor, we call \c setupUi() to load the user interface file.
       
    81     Note that we do not need the \c{ui} prefix as \c CalculatorForm is a
       
    82     subclass of the user interface class.
       
    83 
       
    84     \snippet examples/uitools/multipleinheritance/calculatorform.cpp 0
       
    85 
       
    86     We include two slots, \c{on_inputSpinBox1_valueChanged()} and
       
    87     \c{on_inputSpinBox2_valueChanged()}. These slots respond to the
       
    88     \l{QSpinBox::valueChanged()}{valueChanged()} signal that both spin boxes
       
    89     emit. Whenever there is a change in one spin box's value, we take that
       
    90     value and add it to whatever value the other spin box has.
       
    91 
       
    92     \snippet examples/uitools/multipleinheritance/calculatorform.cpp 1
       
    93     \codeline
       
    94     \snippet examples/uitools/multipleinheritance/calculatorform.cpp 2
       
    95 
       
    96     \section1 \c main() Function
       
    97 
       
    98     The \c main() function instantiates QApplication and \c CalculatorForm.
       
    99     The \c calculator object is displayed by invoking the \l{QWidget::show()}
       
   100     {show()} function.
       
   101 
       
   102     \snippet examples/uitools/multipleinheritance/main.cpp 0
       
   103 
       
   104     There are various approaches to include forms into applications. The
       
   105     Multiple Inheritance approach is just one of them. See
       
   106     \l{Using a Designer UI File in Your Application} for more information on
       
   107     the other approaches available.
       
   108 */