Установка начального положения QSplitter - весьма больная тема. Через QtDesigner этого сделать по сути невозможно, хотя есть одна хитрость. Насколько я понял его логику работы, большое значение имеют свойства виджетов, объединяемых сплиттером ДО самого факта объединения. Т.е. их размеры, политики изменения размеров, а так же Horizontal Stretch / Vertical Stretch учитываются дизайнером ТОЛЬКО в момент объединения. Изменение этих параметров у виджетов, уже объединенных сплиттером приводят к самым непредсказуемым результатам.
Теперь перейдем непосредственно к коду. Казалось бы, сделать вызов
splitter->setSizes(QList<int>() << firstSize << secondSize)
не составляет труда и все должно быть замечательно. Но и тут не обходится без сюрпризов. Если до/после вызова setSizes установить stretch factor'ы
splitter->setStretchFactor(0, 0);
splitter->setStretchFactor(1, 1);
получаем опять непредсказуемое положение сплиттера.
Ну а теперь собственно вопрос: Есть задача, установить горизонтальный сплиттер в определенную позицию (в пикселах). Так же необходимо отключить изменение размеров виджета слева от сплиттера при изменении размеров окна (т.е. установить stretch factor'ы, как показано в коде выше). Каким образом можно получить желаемый результат?