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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Выравнивание по тексту  (Прочитано 5156 раз)
like-nix
Гость
« : Февраль 25, 2011, 00:41 »

Подскажите пожалуйста.

Как сделать чтобы QTextEdit при вводе текста увеличивался(вниз), в том случае если текст не помещается в отведенное для изначально размер, до определенных размеров, и далее нужно запретить ввод текста. Т.е. нужен виджет в который можно писать текст и он будет изменять размер как написано выше, так что это не обязательно QTextEdit надо.

И второй вопрос. Можно ли сделать многострочный Qlabel? Нужно чтобы текст автоматом переносился на новую  строку(т.е по ширине перенос должен выполняться) в том случае если не помещается в одну строку, и нужно сделать ограничение строк само собой чтобы он увеличивался до определенных размеров.  Не поместившийся текст должен отрезаться "...", а при наведении должен выскакивать tooltip и показывать весь текст(это такая идея =) подсказку сделать знаю как). Опять же не обязательно QLabel нужен основная функция отображение текста как написано выше, без возможности редактирования.

Жду предложений


« Последнее редактирование: Февраль 25, 2011, 01:05 от like-nix » Записан
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #1 : Февраль 25, 2011, 01:11 »

QLabel lbl("text1\ntext2\ntext3"); И не забывай при этом ставить ему нужную ширину/высоту.

Для запрета ввода текста смотри в строну eventFilter'а например.
« Последнее редактирование: Февраль 25, 2011, 01:20 от serg_hd » Записан

kubuntu/Win7/x64/NetBeans
like-nix
Гость
« Ответ #2 : Февраль 25, 2011, 01:29 »

Спасибо за ответ про Label. Правда я уже сам до пер =). А про Edit подскажите  Подмигивающий
Нужно чтобы он по тексту вниз увеличивал размер.
« Последнее редактирование: Февраль 25, 2011, 01:39 от like-nix » Записан
like-nix
Гость
« Ответ #3 : Февраль 25, 2011, 01:48 »

Подскажите как определить ширину и высоту текста.
Записан
like-nix
Гость
« Ответ #4 : Февраль 25, 2011, 01:52 »

Может это делать через QTextCharFormat::fontWeight? Предполагаю тогда нужно посчитать сколько символов в строке и умножить на это число, но тогда у меня вопрос всели символы равны?
Записан
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #5 : Февраль 25, 2011, 02:08 »

QFontMetrics
Записан

kubuntu/Win7/x64/NetBeans
Igore
Гость
« Ответ #6 : Февраль 25, 2011, 10:08 »

Для QLabel можно попроще, использовать wordWrap (перенос строк будет автоматом), отрезание текста все равно придется самому делать.

Я делал подобное (маштабирование по заданной области чтобы все влезало), в paintEvent, через QTextLayout, QTextOption, QPainter.

http://doc.trolltech.com/main-snapshot/qt4-scribe.html
« Последнее редактирование: Февраль 25, 2011, 10:37 от Igore » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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