Russian Qt Forum
Сентябрь 30, 2024, 14:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как расположить виджеты поверх друг друга?  (Прочитано 11933 раз)
someLogin
Гость
« : Июнь 19, 2009, 00:35 »

Ну например два QLabel.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Июнь 19, 2009, 00:42 »

Может подробней задачу опишешь? Зачем нужно располагать 2 QLabel один над другим?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
someLogin
Гость
« Ответ #2 : Июнь 19, 2009, 00:49 »

Не обязательно лейблы, любые виджеты друг на друга, ну например что бы их перетаскивать, в этом случае нижний виджет становиться видимым... Или (если мы говорим о лейблах) в нежнем pixmap изображение рамочки для фотографии, а на верхнем сама фотография...
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Июнь 19, 2009, 04:21 »

>>в нежнем pixmap изображение рамочки для фотографии, а на верхнем сама фотография
можно рамочку просто рисовать поверх виджета.

Прсто так виджет поверх виджета не положишь.

Либо используй "Графическое представление" (Graphics View)
Записан

Юра.
kirill
Гость
« Ответ #4 : Июнь 19, 2009, 05:43 »

почему же нельзя, можно. Просто нужно отказаться от layout'ов, использовать абсолютное позиционирование.

QLabel * lbl1 = new QLabel(this);
QLabel * lbl2 = new QLabel(this);

lbl1->move(200, 300);
lbl2->move(210, 310);
Записан
spectre71
Гость
« Ответ #5 : Июнь 19, 2009, 05:49 »

Прсто так виджет поверх виджета не положишь.
Почему не положишь?
1) Вариант - грубый
ParentWidget  - QWidget на котором они будут распологаться, не надо ставить ему  QLayout !!!

QWidget* Widget1 = new QWidget(ParentWidget);
QWidget* Widget2 = new QWidget(ParentWidget);

Дальше сам изменяешь их размеры перемещаешь, обрабатываешь ParentWidget::resizeEvent и делаешь необходимые перемещения и ресайзы
2) Вариант - пишем свой QLayout и делаем что хотим

Записан
spectre71
Гость
« Ответ #6 : Июнь 19, 2009, 05:51 »

Хотя QLayout ему можно поставить. Главное не добавлять в него свои перемещаемые виджеты
Записан
someLogin
Гость
« Ответ #7 : Июнь 19, 2009, 12:20 »

Может где то есть готовый класс аля QZBoxLayout?  Улыбающийся

А если нет, подскажите что учесть при его разработке. Многим пригодиться.  Улыбающийся
Записан
ритт
Гость
« Ответ #8 : Июнь 19, 2009, 13:24 »

кому и зачем?
для рамочки вообще лучше перегрузить paintEvent и не городить огород...
и вообще, даже один виджет поверх другого редко бывает нужен (как кнопочки на табах), а уж серия виджетов друг на друге и вовсе излишество.
Записан
anaksimandr
Гость
« Ответ #9 : Октябрь 04, 2012, 21:13 »

Если кому то еще интересно - QStackedLayout

\Некропостинг
Записан
Bepec
Гость
« Ответ #10 : Октябрь 04, 2012, 21:58 »

Парниш... А парниш. А ты и не в теме то Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.072 секунд. Запросов: 23.