The default spacing for top-level layouts, when the parent is a QWidget, will be determined by querying the style. SmartSpacing() is designed to get the default spacing for either the top-level layouts or the sublayouts. Return static_cast (parent) - >spacing() Return pw - >style() - >pixelMetric(pm, nullptr, pw) Int FlowLayout ::smartSpacing( QStyle ::PixelMetric pm) const We start off by looking at the constructor: doLayout() lays out the layout items, while the smartSpacing() function calculates the spacing between them. We also declare two private methods, doLayout() and smartSpacing(). These functions add items to the layout and handle their orientation and geometry.
We reimplement functions inherited from QLayout. Int smartSpacing( QStyle ::PixelMetric pm) const Int doLayout( const QRect &rect, bool testOnly) const QLayoutItem *takeAt( int index) override Void setGeometry( const QRect &rect) override QLayoutItem *itemAt( int index) const override Qt ::Orientations expandingDirections() const override Void addItem( QLayoutItem *item) override Explicit FlowLayout( QWidget *parent, int margin = - 1, int hSpacing = - 1, int vSpacing = - 1) Įxplicit FlowLayout( int margin = - 1, int hSpacing = - 1, int vSpacing = - 1)