позицията е фиксирана (същия ефект като css) с Qt

Въпрос:

Както в css, има ли еквивалент на position: fixed; в Qt?

снимка:

Това, което искам, е да преместя второто балонче (подклас QTextEdit) вляво, когато главният ми прозорец се преоразмери. Втората снимка показва какво искам да предотвратя.

въведете описание на изображението туквъведете описание на изображението тук


person David    schedule 16.01.2014    source източник
comment
Какво е балонът? A QWidget? A QGraphicsItem? Рамка в QTextDocument?   -  person Kuba hasn't forgotten Monica    schedule 17.01.2014
comment
това е подклас QTextEdit. Подкласирах го само за да променя стила му.   -  person David    schedule 17.01.2014
comment
Добре, значи целият балон е едно копие на QTextEdit?   -  person Kuba hasn't forgotten Monica    schedule 17.01.2014
comment
точно... Това беше само за стила му.   -  person David    schedule 17.01.2014


Отговори (1)


Тъй като балончетата са екземпляри на QWidget, най-простото нещо, което трябва да направите, е да ги поставите в оформление и да ги подравните вляво или надясно в оформлението с помощта на bool QLayout::setAlignment(QWidget * w, Qt::Alignment alignment).

Ще трябва да ограничите максималната ширина на джаджите до, да речем, 2/3 от общата ширина на жълтата област и това ще трябва да се регулира динамично. Можете да направите това, като инсталирате филтър за събития, за да хванете QResizeEvent в областта, или внедрите resizeEvent(QResizeEvent*) в класа на областта.

person Kuba hasn't forgotten Monica    schedule 16.01.2014
comment
работи страхотно! Но контейнерът (жълтата зона тук) трябва да бъде настроен да подравнява елементите си вертикално. - person David; 17.01.2014