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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как узнать влазит ли текст в ячейку QTableView  (Прочитано 7889 раз)
kkk777kkk
Гость
« : Сентябрь 10, 2009, 11:35 »

Есть таблица на vableview, к ячейкам одного из столбцов которой, появилась необходимость добавить Qt::ToolTipRole, но не хотелось бы добавлять tooltip зря, если текст в ячейке и так виден. Как узнать, что текста больше чем может вместить в себя ячейка?  Непонимающий
зы: ячейка из трех строк и разная длина слов не дает воспользоваться суммой буков и пробелов потому как не ясно как будет перенес текст.  Показает язык

спасибо откликнувшимся  Улыбающийся
Записан
GreenGo
Гость
« Ответ #1 : Сентябрь 10, 2009, 15:19 »

Есть таблица на vableview, к ячейкам одного из столбцов которой, появилась необходимость добавить Qt::ToolTipRole, но не хотелось бы добавлять tooltip зря, если текст в ячейке и так виден. Как узнать, что текста больше чем может вместить в себя ячейка?  Непонимающий
зы: ячейка из трех строк и разная длина слов не дает воспользоваться суммой буков и пробелов потому как не ясно как будет перенес текст.  Показает язык

спасибо откликнувшимся  Улыбающийся
есть такой класс QFontMetrics, у которого есть ф-ция возвращающая длину определенного текста, с определенным шрифтом в пикселях.
В ф-ции отрисовки QTableView, сравнивай длину ячейки с длинной текста и если не вмещается, указывай tooltip.
Записан
kkk777kkk
Гость
« Ответ #2 : Сентябрь 10, 2009, 22:37 »

пасиб за решение интересное, правда я вот, после того как написал пост, сел и решил полезть в исходники tableview  и там нашел метод resizeColumnToContents(int) а в нем все было очень просто: ширина колонки - это ширина хедера этой колонки, а sizeHintForColumn дает ширину максимальной ячейки, при этом есть наследованый метод sizeHintForIndex, который и дал мне искомую ширину текста!
Записан
Evgeniya
Гость
« Ответ #3 : Декабрь 18, 2009, 16:25 »

kkk777kkk, а не подскажите как вы реализовали эту проверку???
Просто я делаю так: Добавила в модель обработку роли Qt::ToolTipRole и теперь подсказка выскакивает под каждой ячейкой...и как же внутри модели можно теперь проверить,поместится ли текст в ячейку.Ведь методы которые Вы написали относятся уже не к модели,а к представлению..
Подскажите пожалуйста,оччень надо!!!!!
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Декабрь 18, 2009, 17:38 »

А в модели это и незачем проверять (она не зависит от представления).
Да и подсказку выводит не модель, а представление, в нём и надо решать показывать её или нет
Записан

Юра.
Evgeniya
Гость
« Ответ #5 : Декабрь 18, 2009, 17:44 »

Вот и я думаю,что это в представлении нужно проверять...только как при этом выводить toolTip наведенной ячейки..чего-то я не найду такого метода в представлении
Записан
Kolobok
Гость
« Ответ #6 : Декабрь 19, 2009, 00:40 »

View сама почти ничего не рисует. Это все в делегате

Код:
QAbstractItemDelegate::helpEvent
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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