[Development] New class for QtWidgets: ColumnResizer
Aurélien Gâteau
agateau at kde.org
Fri Jun 13 10:39:34 CEST 2014
Oswald Buddenhagen wrote:
> On Thu, Jun 12, 2014 at 04:08:17PM +0200, Aurélien Gâteau wrote:
>> Olivier Goffart wrote:
>> > But just wondering if it would not be better to have that as an API
>> > within QGridLayout such as
>> > QGridLayout::setAlignedWith(QGridLayout*)
>>
>> The class works with QFormLayout as well, so I don't think moving the
>> feature into QGridLayout would be a good idea.
>>
> they have a common base class, you know ...
>
> QLayout::linkDimension(QLayout *other, Qt::Orientation orientation =
> Qt::Horizontal)
>
> (the second parameter is actually a flag field).
>
> and for more fine-grained control one could consider (not sure this makes
> sense):
>
> QLayoutItem::linkDimension(QLayoutItem *other, Qt::Orientation
> orientation = Qt::Horizontal)
What is missing from what you propose is the notion of column or row:
ColumnResizer lets you limit resizing to one column only so for example if
you have two 3-columns QGridLayouts stacked on top of each other then you
can link the first column widths while leaving each layout decide how they
want to size the 2 other columns.
What about this instead?
QLayout::linkDimension(QLayout *other, int index, Qt::Orientation
orientation = Qt::Vertical);
> but then, i wonder whether you are fixing the right problem to start
> with. usually, one would create a big master layout, and embed
> sublayouts spanning multiple cells in the areas that are not supposed to
> be contrained by the grid.
As Eike pointed out: using a big grid means you have to give up on group
boxes.
Aurélien
More information about the Development
mailing list