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 ());
102 QLayout::setGeometry (
rect);
103 DoLayout (
rect,
false);
121 for (
const auto item : ItemList_)
127 spaceX =
widget->style ()->layoutSpacing (QSizePolicy::PushButton,
128 QSizePolicy::PushButton, Qt::Horizontal);
131 spaceY =
widget->style ()->layoutSpacing (QSizePolicy::PushButton,
132 QSizePolicy::PushButton, Qt::Vertical);
156 int FlowLayout::SmartSpacing (QStyle::PixelMetric
pm)
const
158 const auto obj = parent ();
162 if (
const auto pw =
dynamic_cast<QWidget*
> (
obj))
163 return pw->style ()->pixelMetric (
pm,
nullptr,
pw);
164 if (
const auto lay =
dynamic_cast<QLayout*
> (
obj))
165 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)