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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QLabel Как выставить ширину по содержимому ?  (Прочитано 10433 раз)
spbtellurian
Гость
« : Январь 26, 2010, 12:08 »

QLabel Как выставить ширину по содержимому  Непонимающий
Записан
Kolobok
Гость
« Ответ #1 : Январь 26, 2010, 12:10 »

Код:
setScaledContents( false );
Записан
SABROG
Гость
« Ответ #2 : Январь 26, 2010, 12:42 »

Код:
setScaledContents( false );

Он и так false по умолчанию.
Записан
spbtellurian
Гость
« Ответ #3 : Январь 26, 2010, 13:01 »

хорошо зайдём с другой стороны

Как узнать необходимую ширину виджета?
Допустим есть текст
QString str = "sample text"
беру узнаю ширину текста
fontMetrics().boundingRect(str).width();
все отступы до которых удолось достучаться у QLabel выдают нули, однако текст целиком в Qlablel не влазит.
Записан
DS_tm
Гость
« Ответ #4 : Январь 26, 2010, 13:15 »

для QLabel переопределен sizeHint, может в нем дело?
Записан
DS_tm
Гость
« Ответ #5 : Январь 26, 2010, 13:17 »

А вообще QWidget::adjustSize()

Цитировать
Adjusts the size of the widget to fit its contents.
Записан
spbtellurian
Гость
« Ответ #6 : Январь 26, 2010, 13:57 »

adjustSize() кстати говоря да. слона то и не уивдел Строит глазки
НО! как выяснилось в некоторых случаях могут быть проблемы с кирилицей. Т.е. ставим текст латиницей всё ок, подменяем латинский текст на кирилицу и текст не влазит.
Записан
BRE
Гость
« Ответ #7 : Январь 26, 2010, 14:03 »

Поменял на кириллицу сделай еще раз adjustSize().
Ширина у букв разная, количество букв, тоже разная.  Улыбающийся
« Последнее редактирование: Январь 26, 2010, 14:04 от BRE » Записан
spbtellurian
Гость
« Ответ #8 : Январь 26, 2010, 17:56 »

хорошо скажу по другому елси в прошлый раз выразился не точно
заменяю строчку
str = "test"
на
строчку
str = "тест"
собираю проект и получаю фигу - текст обрезан
Записан
SABROG
Гость
« Ответ #9 : Январь 26, 2010, 17:57 »

собираю проект и получаю фигу - текст обрезан

adjustSize() должен вызываться тобой динамически во время работы приложения каждый раз, когда меняется содержимое QLabel...

Т.е. во время запуска программы нужно вызывать adjustSize(), т.к. QLabel имеет те размеры, которые были установлены дизайнером.
Записан
BRE
Гость
« Ответ #10 : Январь 26, 2010, 18:08 »

хорошо скажу по другому елси в прошлый раз выразился не точно
заменяю строчку
str = "test"
на
строчку
str = "тест"
собираю проект и получаю фигу - текст обрезан
Не знаю правда, какой у тебя сейчас фонт стоит в браузере, но у меня видно не вооруженным глазом, что слово "test" уже "тест".
Ширина букв разная, поэтому изменил строку -> adjustSize().
Записан
Kolobok
Гость
« Ответ #11 : Январь 26, 2010, 22:52 »

Засунь QLabel в лейаут и будет тебе счастье
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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