crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как программно выделить строку в QListView?
wowka19
  опции профиля:
сообщение 19.5.2014, 0:12
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 20.10.2011
Пользователь №: 2957

Спасибо сказали: 0 раз(а)




Репутация:   0  


Сабж, и к тому же еще несколько вопросов по этой теме:


1. Как программно перевести строку в режим редактирования?
2. Как установить размеры/шрифт/цвет строк в QListView?
3. Если высота всех строк превышает высоту списка (появляется полоса прокрутки), то как показать (сфокусироваться чтоли) невидимую строку?
4. Если длина текста превышает ширину списка (виден не весь текст), то как можно решить эту проблему? Какие у Qt есть решения (бегущая туда-сюда строка, просто перенос слов, ...)?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 1)
Анна
  опции профиля:
сообщение 21.5.2014, 13:58
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 276
Регистрация: 22.5.2008
Из: Зеленоград
Пользователь №: 181

Спасибо сказали: 30 раз(а)




Репутация:   4  


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 и её подклассов. Практически все нестандартные решения реализуются через них, а сам вьювер не трогается.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 9.11.2024, 15:22