Consider modifying Stretch and SizeRules::solve_seq.
Status quo: a few named Stretch levels; only widgets of the highest level get extra space (excess is split evenly).
Possible alternative: use numeric Stretch levels (up to some maximum). Use exponential weighting: base ^ level for some base; divide up excess space according to these weights and have solve_seq progressively move towards these targets (but such that widths are only shrunk or grown by a single call; no direct redistribution).
Consider modifying
Stretch
andSizeRules::solve_seq
.Status quo: a few named
Stretch
levels; only widgets of the highest level get extra space (excess is split evenly).Possible alternative: use numeric
Stretch
levels (up to some maximum). Use exponential weighting:base ^ level
for somebase
; divide up excess space according to these weights and havesolve_seq
progressively move towards these targets (but such that widths are only shrunk or grown by a single call; no direct redistribution).