Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как программно выделить строку в QListView?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Модель/Представление
wowka19
Сабж, и к тому же еще несколько вопросов по этой теме:


1. Как программно перевести строку в режим редактирования?
2. Как установить размеры/шрифт/цвет строк в QListView?
3. Если высота всех строк превышает высоту списка (появляется полоса прокрутки), то как показать (сфокусироваться чтоли) невидимую строку?
4. Если длина текста превышает ширину списка (виден не весь текст), то как можно решить эту проблему? Какие у Qt есть решения (бегущая туда-сюда строка, просто перенос слов, ...)?
Анна
1. Для этого есть QItemDelegate. У самого вьювера, кажется, есть функция edit()
2. На счёт размеров не знаю, не приходилось. А цвет фона для каждого элемента можно задавать перегрузив в модели data ( const QModelIndex & index, int role = Qt::DisplayRole ). Для role == Qt::BackgroundRole и Qt::FontRole возвращаешь нужные кисть и фонт, завёрнутые в QVariant.
Для отрисовки высот, кажется, есть какой-то флаг у вьювера.
3. scrollTo() тебе в помощь.
4. как вариант, можно в той же модели, в той же data() для Qt::ToolTipRole возвращать текст элемента. Тогда он появится полностью в всплывающей подсказке при наведении мышки на элемент.

В общем, тебе нужно хорошенько почитать про использование модели QAbstractItemModel и её подклассов. Практически все нестандартные решения реализуются через них, а сам вьювер не трогается.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.