49 setContentsMargins(margin, margin, margin, margin);
56 setContentsMargins(margin, margin, margin, margin);
99 if (index >= 0 && index <
itemList.size())
117 int height =
doLayout(QRect(0, 0, width, 0),
true);
123 QLayout::setGeometry(rect);
135 foreach (QLayoutItem* item,
itemList)
136 size = size.expandedTo(item->minimumSize());
138 size += QSize(2 * margin(), 2 * margin());
144 int left, top, right, bottom;
145 getContentsMargins(&left, &top, &right, &bottom);
146 QRect effectiveRect = rect.adjusted(+left, +top, -right, -bottom);
147 int x = effectiveRect.x();
148 int y = effectiveRect.y();
153 QWidget* wid = item->widget();
156 spaceX = wid->style()->layoutSpacing(QSizePolicy::PushButton, QSizePolicy::PushButton,
161 spaceY = wid->style()->layoutSpacing(QSizePolicy::PushButton, QSizePolicy::PushButton,
164 int nextX = x + item->sizeHint().width() + spaceX;
165 if (nextX - spaceX > effectiveRect.right() && lineHeight > 0) {
166 x = effectiveRect.x();
167 y = y + lineHeight + spaceY;
168 nextX = x + item->sizeHint().width() + spaceX;
173 item->setGeometry(QRect(QPoint(x, y), item->sizeHint()));
176 lineHeight = qMax(lineHeight, item->sizeHint().height());
178 return y + lineHeight - rect.y() + bottom;
182 QObject* parent = this->parent();
185 }
else if (parent->isWidgetType()) {
186 QWidget* pw =
static_cast<QWidget*
>(parent);
187 return pw->style()->pixelMetric(pm,
nullptr, pw);
189 return static_cast<QLayout*
>(parent)->spacing();