Как инициализировать позицию дескриптора сплиттера в Qt?

Я хочу инициализировать положение ручки разделителя, как показано ниже, а не посередине. Я не могу установить его в свойстве.

введите здесь описание изображения

Как это решить?

Спасибо за помощь.


person Casper    schedule 31.07.2014    source источник


Ответы (3)


Вы можете использовать QSplitter::setSizes в этом случае, чтобы изменить положение ручки:

ui->splitter->setSizes(QList<int>() << 100 << 200);
person ahmed    schedule 31.07.2014

Вы должны установить горизонтальное растяжение для двух виджетов в разделителе. Например, установив горизонтальное растяжение левого виджета на 1, а правого виджета на 2, правый виджет получит ширину в 2 раза больше, чем левый:

leftWidget->sizePolicy().setHorizontalStretch(1);
rightWidget->sizePolicy().setHorizontalStretch(2); 

Другой возможный способ — использовать QSplitter::setSizes.

person Nejat    schedule 31.07.2014

Используйте QSplitter::setStretchFactor(int index, int stretch), где index — это позиция соответствующего виджета.

person Tobias Leupold    schedule 14.09.2018