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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как программно получить количество букв помещающихся в label ?  (Прочитано 6151 раз)
virtual_root
Гость
« : Май 04, 2012, 10:28 »

Добрый день ребята. Подскажите пожалуйста, как мне программно узнать сколько букв я могу поместить в label определенной ширины. Я просто хочу в сообщении оставить такое количество букв которое вместится и троеточие добавить остальное обрезать. Как на сайтах часто встречается. Я понимаю глупый наверное вопрос,но очень нужен ваш совет. Просто статически оставлять какое-то фиксированное кол-во букв не хочется...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Май 04, 2012, 10:35 »

http://doc-snapshot.qt-project.org/4.8/qwidget.html#fontMetrics
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
virtual_root
Гость
« Ответ #2 : Май 04, 2012, 11:08 »

Спасибо,помогло.
Сделала так:
Код:
QFontMetrics m(ui->label_2->font());
         m.width(str)/ui->label_2->width();

У меня ещё вопрос. Может кому-то приходилось решать подобную задачу:
Есть сообщение, которое приходит от сервера в виде html. Отображаю его в textedit, так как оно может быть достаточно не маленьким. В сообщении встречаются ссылки. Возможно ли как-нибудь обработать эти ссылки, чтобы при нажатии на них запускался браузер и открывалась нужная страничка?
У меня была идея ложить их в label а потом в textedit, но я не нашла способа как это реализовать... У textedit нет метода addWidget...
Кто-нибудь знает решение?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Май 04, 2012, 11:14 »

http://doc-snapshot.qt-project.org/4.8/qlabel.html#openExternalLinks-prop
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
virtual_root
Гость
« Ответ #4 : Май 04, 2012, 11:15 »

Да, это я понимаю как при нажатии на qlabel открыть страничку, а как мне эти qlabel запихнуть в textedit?
И ещё вопрос: можно ли как-то из html текста получить только текст?
« Последнее редактирование: Май 04, 2012, 11:17 от virtual_root » Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Май 04, 2012, 11:16 »

Возможно ли как-нибудь обработать эти ссылки, чтобы при нажатии на них запускался браузер и открывалась нужная страничка?
У меня была идея ложить их в label а потом в textedit, но я не нашла способа как это реализовать... У textedit нет метода addWidget...
Кто-нибудь знает решение?

QTextBrowser
Записан
virtual_root
Гость
« Ответ #6 : Май 04, 2012, 11:25 »

QTextBrouser подошёл! А как сделать так чтобы он мне ссылки не в себе открывал?
Я ловлю сигнал on_textBrowser_anchorClicked(const QUrl &arg1) открываю ссылку в браузере, но он ещё и дополнительно в себе её открывает... а этого мне не нужно.
Записан
virtual_root
Гость
« Ответ #7 : Май 04, 2012, 11:28 »

уже нашла
Код:
 ui->textBrowser->setOpenLinks(false);
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #8 : Май 04, 2012, 12:32 »

Цитировать
Я просто хочу в сообщении оставить такое количество букв которое вместится и троеточие добавить остальное обрезать.

см. QFontMetrics::elidedText
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
virtual_root
Гость
« Ответ #9 : Май 04, 2012, 12:35 »

спасибо)
Записан
Странник
Гость
« Ответ #10 : Май 04, 2012, 12:46 »

QTextBrouser подошёл! А как сделать так чтобы он мне ссылки не в себе открывал?
Я ловлю сигнал on_textBrowser_anchorClicked(const QUrl &arg1) открываю ссылку в браузере, но он ещё и дополнительно в себе её открывает... а этого мне не нужно.
setOpenExternalLinks(true) проще.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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