1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2016 The Qt Company Ltd. 4 ** Contact: https://www.qt.io/licensing/ 5 ** 6 ** This file is part of the documentation of the Qt Toolkit. 7 ** 8 ** $QT_BEGIN_LICENSE:BSD$ 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 https://www.qt.io/terms-conditions. For further 15 ** information use the contact form at https://www.qt.io/contact-us. 16 ** 17 ** BSD License Usage 18 ** Alternatively, you may use this file under the terms of the BSD license 19 ** as follows: 20 ** 21 ** "Redistribution and use in source and binary forms, with or without 22 ** modification, are permitted provided that the following conditions are 23 ** met: 24 ** * Redistributions of source code must retain the above copyright 25 ** notice, this list of conditions and the following disclaimer. 26 ** * Redistributions in binary form must reproduce the above copyright 27 ** notice, this list of conditions and the following disclaimer in 28 ** the documentation and/or other materials provided with the 29 ** distribution. 30 ** * Neither the name of The Qt Company Ltd nor the names of its 31 ** contributors may be used to endorse or promote products derived 32 ** from this software without specific prior written permission. 33 ** 34 ** 35 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 36 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 37 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 38 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 39 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 40 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 41 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 42 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 43 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 44 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 45 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 46 ** 47 ** $QT_END_LICENSE$ 48 ** 49 ****************************************************************************/ 50 51 //! [0] 52 QFormLayout *formLayout = new QFormLayout; 53 formLayout->addRow(tr("&Name:"), nameLineEdit); 54 formLayout->addRow(tr("&Email:"), emailLineEdit); 55 formLayout->addRow(tr("&Age:"), ageSpinBox); 56 setLayout(formLayout); 57 //! [0] 58 59 60 //! [1] 61 nameLabel = new QLabel(tr("&Name:")); 62 nameLabel->setBuddy(nameLineEdit); 63 64 emailLabel = new QLabel(tr("&Name:")); 65 emailLabel->setBuddy(emailLineEdit); 66 67 ageLabel = new QLabel(tr("&Name:")); 68 ageLabel->setBuddy(ageSpinBox); 69 70 QGridLayout *gridLayout = new QGridLayout; 71 gridLayout->addWidget(nameLabel, 0, 0); 72 gridLayout->addWidget(nameLineEdit, 0, 1); 73 gridLayout->addWidget(emailLabel, 1, 0); 74 gridLayout->addWidget(emailLineEdit, 1, 1); 75 gridLayout->addWidget(ageLabel, 2, 0); 76 gridLayout->addWidget(ageSpinBox, 2, 1); 77 setLayout(gridLayout); 78 //! [1] 79 80 81 //! [2] 82 formLayout->setRowWrapPolicy(QFormLayout::DontWrapRows); 83 formLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); 84 formLayout->setFormAlignment(Qt::AlignHCenter | Qt::AlignTop); 85 formLayout->setLabelAlignment(Qt::AlignLeft); 86 //! [2] 87 88 //! [3] 89 QFormLayout *flay = ...; 90 QPointer<QLineEdit> le = new QLineEdit; 91 flay->insertRow(2, "User:", le); 92 // later: 93 flay->removeRow(2); // le == nullptr at this point 94 //! [3] 95 96 //! [4] 97 QFormLayout *flay = ...; 98 QPointer<QLineEdit> le = new QLineEdit; 99 flay->insertRow(2, "User:", le); 100 // later: 101 flay->removeRow(le); // le == nullptr at this point 102 //! [4] 103 104 //! [5] 105 QFormLayout *flay = ...; 106 QPointer<QVBoxLayout> vbl = new QVBoxLayout; 107 flay->insertRow(2, "User:", vbl); 108 // later: 109 flay->removeRow(layout); // vbl == nullptr at this point 110 //! [5] 111 112 //! [6] 113 QFormLayout *flay = ...; 114 QPointer<QLineEdit> le = new QLineEdit; 115 flay->insertRow(2, "User:", le); 116 // later: 117 QFormLayout::TakeRowResult result = flay->takeRow(2); 118 //! [6] 119 120 //! [7] 121 QFormLayout *flay = ...; 122 QPointer<QLineEdit> le = new QLineEdit; 123 flay->insertRow(2, "User:", le); 124 // later: 125 QFormLayout::TakeRowResult result = flay->takeRow(widget); 126 //! [7] 127 128 //! [8] 129 QFormLayout *flay = ...; 130 QPointer<QVBoxLayout> vbl = new QVBoxLayout; 131 flay->insertRow(2, "User:", vbl); 132 // later: 133 QFormLayout::TakeRowResult result = flay->takeRow(widget); 134 //! [8] 135