Я создаю собственный виджет на основе QGraphicsWidget
Внутри виджета мне нужны различные другие виджеты в соответствии с размером окна.Для этого я использую
Layout = new QGraphicsLinearLayout();
Layout->setOrientation(Qt::Horizontal);
setLayout(Layout);
Так что у меня есть макет, и на каждой стороне макета у меня есть виджет.Таким образом, виджет слева и виджет справа.
QGraphicsLinearLayout() below
500 px wide x
|--------------------------------|
| |
|left widget right widget| 100 px tall y
|--------------------------------|
Я хочу, чтобы при увеличении размера окна виджеты оставались в пределах x пикселей от края.Таким образом, если размер окна будет изменен до 10000 пикселей в ширину, левый виджет всегда будет на 1 пиксель от левого края, а правый виджет всегда будет на 1 пиксель от правого края.
10000 px wide x
|---------------------------------------------------|
| |
|left widget right widget| 100 px tall y
|---------------------------------------------------|
Текущее поведениеэтот левый виджет останется на месте и никогда не будет двигаться, а правый виджет отойдет от правого края.
Чтобы добиться такого поведения, я попробовал следующее:
Layout->setAlignment(leftWidget, Qt::AlignLeft);
Этоабсолютно ничего.
Я также пытался
Layout->addItem(leftWidget);
Layout->setStretchFactor(leftWidget, 0);
Layout->addItem(rightWidget);
, который дает желаемый эффект, но перекрывает правый виджет с рамкой, например,
500 px wide x
|--------------------------------|
| |
|left widget right widget 100 px tall y
|--------------------------------|
Так, как я могу получить мойжелаемое поведение?QLayouts кажутся очень запутанными, а API вводит в заблуждение.