| /**************************************************************************** |
| ** |
| ** Copyright (C) 2016 The Qt Company Ltd. |
| ** Contact: https://www.qt.io/licensing/ |
| ** |
| ** This file is part of the documentation of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:FDL$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/contact-us. |
| ** |
| ** GNU Free Documentation License Usage |
| ** Alternatively, this file may be used under the terms of the GNU Free |
| ** Documentation License version 1.3 as published by the Free Software |
| ** Foundation and appearing in the file included in the packaging of |
| ** this file. Please review the following information to ensure |
| ** the GNU Free Documentation License version 1.3 requirements |
| ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| /*! |
| \example dialogs/tabdialog |
| \title Tab Dialog Example |
| \ingroup examples-dialogs |
| |
| \brief The Tab Dialog example shows how to construct a tab dialog using the |
| QTabWidget class. |
| |
| Dialogs provide an efficient way for the application to communicate |
| with the user, but complex dialogs suffer from the problem that they |
| often take up too much screen area. By using a number of tabs in a |
| dialog, information can be split into different categories, while |
| remaining accessible. |
| |
| \image tabdialog-example.png |
| |
| The Tab Dialog example consists of a single \c TabDialog class that |
| provides three tabs, each containing information about a particular |
| file, and two standard push buttons that are used to accept or reject |
| the contents of the dialog. |
| |
| \section1 TabDialog Class Definition |
| |
| The \c TabDialog class is a subclass of QDialog that displays a |
| QTabWidget and two standard dialog buttons. The class definition |
| only contain the class constructor and a private data member for |
| the QTabWidget: |
| |
| \snippet dialogs/tabdialog/tabdialog.h 3 |
| |
| In the example, the widget will be used as a top-level window, but |
| we define the constructor so that it can take a parent widget. This |
| allows the dialog to be centered on top of an application's main |
| window. |
| |
| \section1 TabDialog Class Implementation |
| |
| The constructor calls the QDialog constructor and creates a QFileInfo |
| object for the specified filename. |
| |
| \snippet dialogs/tabdialog/tabdialog.cpp 0 |
| |
| The tab widget is populated with three custom widgets that each |
| contain information about the file. We construct each of these |
| without a parent widget because the tab widget will reparent |
| them as they are added to it. |
| |
| We create two standard push buttons, and connect each of them to |
| the appropriate slots in the dialog: |
| |
| \snippet dialogs/tabdialog/tabdialog.cpp 1 |
| \snippet dialogs/tabdialog/tabdialog.cpp 3 |
| |
| We arrange the tab widget above the buttons in the dialog: |
| |
| \snippet dialogs/tabdialog/tabdialog.cpp 4 |
| |
| Finally, we set the dialog's title: |
| |
| \snippet dialogs/tabdialog/tabdialog.cpp 5 |
| |
| Each of the tabs are subclassed from QWidget, and only provide |
| constructors. |
| |
| \section1 GeneralTab Class Definition |
| |
| The GeneralTab widget definition is simple because we are only interested |
| in displaying the contents of a widget within a tab: |
| |
| \snippet dialogs/tabdialog/tabdialog.h 0 |
| |
| \section1 GeneralTab Class Implementation |
| |
| The GeneralTab widget simply displays some information about the file |
| passed by the TabDialog. Various widgets for this purpose, and these |
| are arranged within a vertical layout: |
| |
| \snippet dialogs/tabdialog/tabdialog.cpp 6 |
| |
| \section1 PermissionsTab Class Definition |
| |
| Like the GeneralTab, the PermissionsTab is just used as a placeholder |
| widget for its children: |
| |
| \snippet dialogs/tabdialog/tabdialog.h 1 |
| |
| \section1 PermissionsTab Class Implementation |
| |
| The PermissionsTab shows information about the file's access information, |
| displaying details of the file permissions and owner in widgets that are |
| arranged in nested layouts: |
| |
| \snippet dialogs/tabdialog/tabdialog.cpp 7 |
| |
| \section1 ApplicationsTab Class Definition |
| |
| The ApplicationsTab is another placeholder widget that is mostly |
| cosmetic: |
| |
| \snippet dialogs/tabdialog/tabdialog.h 2 |
| |
| \section1 ApplicationsTab Class Implementation |
| |
| The ApplicationsTab does not show any useful information, but could be |
| used as a template for a more complicated example: |
| |
| \snippet dialogs/tabdialog/tabdialog.cpp 8 |
| */ |