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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QLabel и внутренние границы  (Прочитано 4035 раз)
Alp
Гость
« : Сентябрь 15, 2009, 22:36 »

Закончил работу начатую в теме про QRect для слова на QLabel, осталась одна проблема: на прикладываемом рисунке текст в QLabel рисуется не с самого края (выравнивание стоит по левому краю), а откуда-то берется промежуток в 4-5 пикселов. ПРи этом indent/margin/contentMargin для самого QLabel  возвращают 0, соответствующие методы для QFrame так же возвращают 0 или 1(для ширины рамки).
Что это за паддинг и где его можно взять?
« Последнее редактирование: Сентябрь 15, 2009, 22:38 от alp » Записан
UVV
Гость
« Ответ #1 : Сентябрь 16, 2009, 11:42 »

Я так понял, что это класс, унаследованный от QLabel, так?
А текст как рисуется?
Записан
Alp
Гость
« Ответ #2 : Сентябрь 16, 2009, 12:35 »

Текст рисуется вызовом QLabel::paintEvent(event);

Т.е. я в своем обработчике рисовалки только прямоугольники дорисовываю, остальное - забота самого QLabel.
Записан
UVV
Гость
« Ответ #3 : Сентябрь 16, 2009, 12:36 »

А, значит тебе правильное смещение текста надо посчитать?
Записан
Alp
Гость
« Ответ #4 : Сентябрь 16, 2009, 13:54 »

Именно. Дело даже не столько в том, что бы "посчитать", сколько в том, что бы понять почему и на какое расстояние он смещается. Если все внутренние отстуупы нулевые, ширина рамки нулевая то почему же текст пишется не с самого края виджета?
Записан
UVV
Гость
« Ответ #5 : Сентябрь 16, 2009, 16:27 »

Я могу предположить, что дело в стиле. У меня была такая же ситуация с текстом в tableView.
Мне помогло чтение исходников qitemdelegate.cpp. Попробуй по аналогии поизучать qlabel.cpp, чтобы узнать, как оно вырисовывается.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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