FlowLayout uses too much height



  • I am trying to use the FlowLayout sample to create a docked panel with 26 same-size buttons. The buttons are positioned OK and also flow properly when the width of the application is changed.

    However, the height of the panel remains constant and too large. I left these overridden functions as is, except for diagnostics.

    int FlowLayout::heightForWidth(int width) const
    {
    int height = doLayout(QRect(0, 0, width, 0), true);
    qDebug() << "heightForWidth(" << width << ") ht=" << height;
    return height;
    }

    void FlowLayout::setGeometry(const QRect &rect)
    {
    QLayout::setGeometry(rect);
    int height = doLayout(rect, false);
    }

    heightForWidth is only called once, using the width of roughly one button plus margins. The height calculated is for 26 rows (818 pixels), instead or 2 or 3 rows (105 or 136 pixels).

    Is there an easy way to get the FlowLayout to use the calculated height?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.