51 if ( index < mLeftItems.size() )
52 return mLeftItems.at( index );
53 index -= mLeftItems.size();
55 if ( index < mRightItems.size() )
56 return mRightItems.at( index );
57 index -= mRightItems.size();
59 if ( index < mTopItems.size() )
60 return mTopItems.at( index );
61 index -= mTopItems.size();
63 if ( index < mBottomItems.size() )
64 return mBottomItems.at( index );
74 if ( index < mLeftItems.size() )
75 return mLeftItems.takeAt( index );
76 index -= mLeftItems.size();
78 if ( index < mRightItems.size() )
79 return mRightItems.takeAt( index );
80 index -= mRightItems.size();
82 if ( index < mTopItems.size() )
83 return mTopItems.takeAt( index );
84 index -= mTopItems.size();
86 if ( index < mBottomItems.size() )
87 return mBottomItems.takeAt( index );
112 QLayout::setGeometry( rect );
117 int bottomMargin = 0;
118 getContentsMargins( &leftMargin, &topMargin, &rightMargin, &bottomMargin );
121 const int innerLeft = rect.left() + leftMargin;
122 const int innerRight = rect.right() - rightMargin;
123 const int innerTop = rect.top() + topMargin;
124 const int innerBottom = rect.bottom() - bottomMargin;
125 const int innerHeight = innerBottom - innerTop;
127 int left = innerLeft;
128 for ( QLayoutItem *item : std::as_const( mLeftItems ) )
130 const QSize
sizeHint = item->sizeHint();
131 item->setGeometry( QRect( left, innerTop,
sizeHint.width(), innerHeight ) );
132 left +=
sizeHint.width() + mHorizontalSpacing;
135 int right = innerRight;
136 for ( QLayoutItem *item : std::as_const( mRightItems ) )
138 const QSize
sizeHint = item->sizeHint();
139 item->setGeometry( QRect( right -
sizeHint.width(), innerTop,
sizeHint.width(), innerHeight ) );
140 right -=
sizeHint.width() + mHorizontalSpacing;
144 for ( QLayoutItem *item : std::as_const( mTopItems ) )
146 const QSize
sizeHint = item->sizeHint();
147 item->setGeometry( QRect( left, top, right - left,
sizeHint.height() ) );
148 top +=
sizeHint.height() + mVerticalSpacing;
151 int bottom = innerBottom;
152 for ( QLayoutItem *item : std::as_const( mBottomItems ) )
154 const QSize
sizeHint = item->sizeHint();
155 item->setGeometry( QRect( left, bottom -
sizeHint.height(), right - left,
sizeHint.height() ) );
156 bottom -=
sizeHint.height() + mVerticalSpacing;
162 QWidgetItem *widgetItem =
new QWidgetItem( widget );
166 mLeftItems.append( widgetItem );
169 mRightItems.append( widgetItem );
172 mTopItems.append( widgetItem );
175 mBottomItems.append( widgetItem );
179 addChildWidget( widget );