1 /****************************************************************************
3 ** Copyright (C) 2015 The Qt Company Ltd.
4 ** Contact: http://www.qt.io/licensing/
6 ** This file is part of the documentation of the Qt Toolkit.
8 ** $QT_BEGIN_LICENSE:FDL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and The Qt Company. For licensing terms
14 ** and conditions see http://www.qt.io/terms-conditions. For further
15 ** information use the contact form at http://www.qt.io/contact-us.
17 ** GNU Free Documentation License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Free
19 ** Documentation License version 1.3 as published by the Free Software
20 ** Foundation and appearing in the file included in the packaging of
21 ** this file. Please review the following information to ensure
22 ** the GNU Free Documentation License version 1.3 requirements
23 ** will be met: http://www.gnu.org/copyleft/fdl.html.
26 ****************************************************************************/
29 \example dialogs/tabdialog
30 \title Tab Dialog Example
32 \brief The Tab Dialog example shows how to construct a tab dialog using the
35 Dialogs provide an efficient way for the application to communicate
36 with the user, but complex dialogs suffer from the problem that they
37 often take up too much screen area. By using a number of tabs in a
38 dialog, information can be split into different categories, while
41 \image tabdialog-example.png
43 The Tab Dialog example consists of a single \c TabDialog class that
44 provides three tabs, each containing information about a particular
45 file, and two standard push buttons that are used to accept or reject
46 the contents of the dialog.
48 \section1 TabDialog Class Definition
50 The \c TabDialog class is a subclass of QDialog that displays a
51 QTabWidget and two standard dialog buttons. The class definition
52 only contain the class constructor and a private data member for
55 \snippet examples/dialogs/tabdialog/tabdialog.h 3
57 In the example, the widget will be used as a top-level window, but
58 we define the constructor so that it can take a parent widget. This
59 allows the dialog to be centered on top of an application's main
62 \section1 TabDialog Class Implementation
64 The constructor calls the QDialog constructor and creates a QFileInfo
65 object for the specified filename.
67 \snippet examples/dialogs/tabdialog/tabdialog.cpp 0
69 The tab widget is populated with three custom widgets that each
70 contain information about the file. We construct each of these
71 without a parent widget because the tab widget will reparent
72 them as they are added to it.
74 We create two standard push buttons, and connect each of them to
75 the appropriate slots in the dialog:
77 \snippet examples/dialogs/tabdialog/tabdialog.cpp 1
78 \snippet examples/dialogs/tabdialog/tabdialog.cpp 3
80 We arrange the tab widget above the buttons in the dialog:
82 \snippet examples/dialogs/tabdialog/tabdialog.cpp 4
84 Finally, we set the dialog's title:
86 \snippet examples/dialogs/tabdialog/tabdialog.cpp 5
88 Each of the tabs are subclassed from QWidget, and only provide
91 \section1 GeneralTab Class Definition
93 The GeneralTab widget definition is simple because we are only interested
94 in displaying the contents of a widget within a tab:
96 \snippet examples/dialogs/tabdialog/tabdialog.h 0
98 \section1 GeneralTab Class Implementation
100 The GeneralTab widget simply displays some information about the file
101 passed by the TabDialog. Various widgets for this purpose, and these
102 are arranged within a vertical layout:
104 \snippet examples/dialogs/tabdialog/tabdialog.cpp 6
106 \section1 PermissionsTab Class Definition
108 Like the GeneralTab, the PermissionsTab is just used as a placeholder
109 widget for its children:
111 \snippet examples/dialogs/tabdialog/tabdialog.h 1
113 \section1 PermissionsTab Class Implementation
115 The PermissionsTab shows information about the file's access information,
116 displaying details of the file permissions and owner in widgets that are
117 arranged in nested layouts:
119 \snippet examples/dialogs/tabdialog/tabdialog.cpp 7
121 \section1 ApplicationsTab Class Definition
123 The ApplicationsTab is another placeholder widget that is mostly
126 \snippet examples/dialogs/tabdialog/tabdialog.h 2
128 \section1 ApplicationsTab Class Implementation
130 The ApplicationsTab does not show any useful information, but could be
131 used as a template for a more complicated example:
133 \snippet examples/dialogs/tabdialog/tabdialog.cpp 8