позиция исправлена ​​(тот же эффект, что и css) с Qt

Вопрос:

Как и в css, есть ли эквивалент position: fixed; в Qt?

Картина :

Я хочу переместить второй пузырь (подкласс QTextEdit) влево при изменении размера моих основных окон. На втором рисунке показано, что я хочу предотвратить.

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


person David    schedule 16.01.2014    source источник
comment
Что такое пузырь? QWidget? 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