42 SmartSpacing (QStyle::PM_LayoutHorizontalSpacing);
49 SmartSpacing (QStyle::PM_LayoutVerticalSpacing);
64 return DoLayout ({ 0, 0,
width, 0 },
true);
69 return ItemList_.size ();
74 return ItemList_.value (
idx);
82 return ItemList_.takeAt (
idx);
88 for (
const auto item : ItemList_)
89 size = size.expandedTo (
item->minimumSize ());
97 QLayout::setGeometry (
rect);
98 DoLayout (
rect,
false);
116 for (
const auto item : ItemList_)
122 spaceX =
widget->style ()->layoutSpacing (QSizePolicy::PushButton,
123 QSizePolicy::PushButton, Qt::Horizontal);
126 spaceY =
widget->style ()->layoutSpacing (QSizePolicy::PushButton,
127 QSizePolicy::PushButton, Qt::Vertical);
151 int FlowLayout::SmartSpacing (QStyle::PixelMetric
pm)
const
153 const auto obj = parent ();
157 if (
const auto pw =
dynamic_cast<QWidget*
> (
obj))
158 return pw->style ()->pixelMetric (
pm,
nullptr,
pw);
159 if (
const auto lay =
dynamic_cast<QLayout*
> (
obj))
160 return lay->spacing ();
A simple flow layout implementation.
FlowLayout(QWidget *, int=-1, int=-1, int=-1)
QSize minimumSize() const override
QLayoutItem * takeAt(int) override
int verticalSpacing() const
void addItem(QLayoutItem *) override
int count() const override
bool hasHeightForWidth() const override
int heightForWidth(int) const override
QLayoutItem * itemAt(int) const override
int horizontalSpacing() const
QSize sizeHint() const override
void setGeometry(const QRect &) override
Qt::Orientations expandingDirections() const override
Container< T > Filter(const Container< T > &c, F f)