Название: подсказка с содержимым ячейки в tableView Отправлено: Evgeniya от Декабря 17, 2009, 21:02 Здраствуйте!!!
Есть таблица tableView, к ячейкам этой таблицы хочу добавить подсказку с содержимым ячейки на которую навели мышкой....как можно это организовать? Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Evgeniya от Декабря 17, 2009, 22:12 Получилось....только вот как бы сделать,так,чтобы tooltip вызывался бы только если текст не поместился в ячейке,а не на каждой ячейке
Код
Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Evgeniya от Декабря 18, 2009, 08:10 Или может,кто-нить подскажет как организовать перенос именно слов в ячейке...
При использовании функции resizeRowsToContents идет перенос по словам,а не слов.. Т.е. если слишком длинное слово,то оно не переносится и его не видно... Название: Re: подсказка с содержимым ячейки в tableView Отправлено: voronElf от Декабря 18, 2009, 11:07 Подозреваю что и в одном и в другом случае нужно копать в сторону делегатов. Жаль что ничего определенного не могу сказать
PS: насчет переноса в словах - эт же подцеплять нужно правила переноса слов языка локализации (для нас - русского) Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Evgeniya от Декабря 18, 2009, 11:34 спасибо за ответ...буду пробовать ;-))
Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Evgeniya от Декабря 20, 2009, 17:40 Можно еще вопросик...
Можно ли мне вызвать эту всплывающую подсказку с помощью метода setData,указав в качестве роли Qt::ToolTipRole??? Просто я делаю вот так: Код только почему-то не появляется всплывающая посказка в 3 столбце...или все-таки я не правильно делаю?? Название: Re: подсказка с содержимым ячейки в tableView Отправлено: MoPDoBoPoT от Декабря 20, 2009, 19:00 QSqlQueryModel только для чтения, то есть метод setData() ничего не делает. Можно отнаследоваться от QSqlQueryModel и переопределить метод data(). Получится почти также, как ты делала до этого, только с проверкой на 3-й столбец:
Код
Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Evgeniya от Декабря 21, 2009, 07:13 MoPDoBoPoT, спасибо!!!
А для чего тогда нужен этот метод???В какой момент он срабатывает???? Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Пантер от Декабря 21, 2009, 07:16 Этот метод нужен, чтобы ты его переопределила.
Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Dendy от Декабря 21, 2009, 07:23 А для чего тогда нужен этот метод???В какой момент он срабатывает???? Пользователь наводится мышкой на ячейку, задерживается на ней -> Qt посылает во View событие QEvent::ToolTip -> View смотрит на какую ячейку наведена мышка и вызывает QAbstractItemModel::data( index, Qt::ToolTipRole ) -> Модель возвращает данные (в вашем случае - строку, совпадающую со значением в ячейке), которые View и показывает. Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Evgeniya от Декабря 21, 2009, 07:35 Спасибо,большое за такое подробное объяснение...
Просто хочется найти способ,чтобы tooltip вызывался в самой программе при выполнении определенного условия,связанного с tableView,а не в переопределенном методе QSqlQueryModel,где нельзя добавить такого условия.. Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Dendy от Декабря 21, 2009, 07:59 Если нужно, чтобы работало и стандартное поведение (при задержке мышкой) и ваше, и причём работало оно одинаково - лучше просто отправлять во вьюв такое же событие, к примеру:
Код
Также можно взять у вьюв делегата и вызвать ему QAbstractItemDelegate::helpEvent(). Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Evgeniya от Декабря 21, 2009, 09:37 Dendy,спасибо большое!!!!
Я вот решила сделать вот таким образом Код
правда почему-то подсказка показывает ячейку на 3 строчки ниже... т.е. получается,что у меня не так считается QModelIndex Cursor...Как его правильно посчитать??? Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Dendy от Декабря 21, 2009, 16:28 Переопределяйте не event(), а viewportEvent(). И возвращайте true, если обработали QEvent::ToolTip, иначе сработает ещё и стандартный обработчик.
Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Evgeniya от Декабря 22, 2009, 08:17 Спасибо большое!!!!Я так и сделала...теперь все нормально работает :)
Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Evgeniya от Декабря 22, 2009, 08:55 только вот единственная проблемка...я же подсказку вывожу при удвлетворении определенного условия...и если перевожу с одной ячейки на другую которая так же удовлетворяет этому условию,то она нормально быстро меняется,а если перевожу на ячейку где мне не нужно выводить эту подсазку - подсказка долго зависает над предыдущей ячейкой....т.е. ее нужно как-то убирать в этом случае
Название: Re: подсказка с содержимым ячейки в tableView Отправлено: Dendy от Декабря 22, 2009, 16:42 Для такой ячейки вызывайте: QToolTip::hideText()
|