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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QLayout, айтемы "внахлест"  (Прочитано 2210 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Март 14, 2014, 12:58 »

Добрый день

Как сделать чтобы айтемы перекрывались - достаточно на 1 пиксель. По поводу "зачем": напр айтем обведен черной рамкой 1 пиксель, если такие стоят рядом, визуально получается неприятно жирная черная линия.

Спасибо
Записан
Bepec
Гость
« Ответ #1 : Март 14, 2014, 13:34 »

Недавно мучался с этой проблемой. Гарантированного решения не нашёл, окромя изменения размеров layout'a.
Проще выражаясь - ужимаем его до тех пор, пока итемы не наложатся друг на друга. Но это сработает только с однотипными виджетами.

Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #2 : Март 14, 2014, 13:49 »

Вижу 2 варианта: писать собственный Layout или отслеживать перемещение айтемов и при их "соседстве" не отрисовывать рамку на соответствующей стороне одного из них. Я как-то писал собственный Layout, было не очень сложно, но подробностей уже не помню.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Март 15, 2014, 16:28 »

Вижу 2 варианта: писать собственный Layout или отслеживать перемещение айтемов и при их "соседстве" не отрисовывать рамку на соответствующей стороне одного из них. Я как-то писал собственный Layout, было не очень сложно, но подробностей уже не помню.
Пока наметил такой план:

- унаследоваться и в перекрытом setGeometry сначала вызвать setGeometry родителя. Потом подвинуть нужные айтемы взяв смещение из своей мапы <QWidget *, QSize>. Дойдет до дела - отпишусь
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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