Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: troorl от Июль 23, 2007, 14:30



Название: Как бы так хитро разместить виджеты? :)
Отправлено: troorl от Июль 23, 2007, 14:30
Есть QLabel с картинкой, он находится на определённом layout-e. Нужно разместить поверх него ещё одну картинку (тоже QLabel), но так, чтобы её размер был заданным и чтобы она имела строго заданные отступы от краёв первой картинки.
margin не подходит, да и размеры второй картинки почему-то изменяются, даже когда задать setFixedSize()... Кто что думает о решении такой задачи?


Название: Как бы так хитро разместить виджеты? :)
Отправлено: Gryz от Июль 23, 2007, 18:40
утанови maximum и minimum size. Тогда точно ничего меняться не будет


Название: Как бы так хитро разместить виджеты? :)
Отправлено: troorl от Июль 23, 2007, 19:58
Цитата: "Gryz"
утанови maximum и minimum size. Тогда точно ничего меняться не будет

ну хорошо, а что с позицией делать?


Название: Как бы так хитро разместить виджеты? :)
Отправлено: Racheengel от Июль 23, 2007, 21:52
move() ?


Название: Как бы так хитро разместить виджеты? :)
Отправлено: troorl от Июль 23, 2007, 22:40
Цитата: "Racheengel"
move() ?

И что, при каждом изменении размеров панельки делать move? =\

UPD. Ну в общем с горем пополам с помощью resizeEvent сделал как надо. Но этот костыль мне совсем не нравится


Название: Как бы так хитро разместить виджеты? :)
Отправлено: pastor от Июль 23, 2007, 23:25
Можно сдеать плуг небольшой. Первы лейбл с картинкой сделать виджетом-контейнером. Потом на него поместить второй лейбл с картинкой


Название: Как бы так хитро разместить виджеты? :)
Отправлено: Racheengel от Июль 24, 2007, 00:36
а не проще сделать свою отрисовку в paintEvent() ?


Название: Как бы так хитро разместить виджеты? :)
Отправлено: pastor от Июль 24, 2007, 00:38
Ну это выбирать автору темы ;)


Название: Как бы так хитро разместить виджеты? :)
Отправлено: troorl от Июль 24, 2007, 13:30
Цитата: "Racheengel"
а не проще сделать свою отрисовку в paintEvent() ?

Нет, не проще :)