Как программно выделить строку в QListView? |
Здравствуйте, гость ( Вход | Регистрация )
Как программно выделить строку в QListView? |
wowka19 |
19.5.2014, 0:12
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 20.10.2011 Пользователь №: 2957 Спасибо сказали: 0 раз(а) Репутация: 0 |
Сабж, и к тому же еще несколько вопросов по этой теме:
1. Как программно перевести строку в режим редактирования? 2. Как установить размеры/шрифт/цвет строк в QListView? 3. Если высота всех строк превышает высоту списка (появляется полоса прокрутки), то как показать (сфокусироваться чтоли) невидимую строку? 4. Если длина текста превышает ширину списка (виден не весь текст), то как можно решить эту проблему? Какие у Qt есть решения (бегущая туда-сюда строка, просто перенос слов, ...)? |
|
|
Анна |
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 и её подклассов. Практически все нестандартные решения реализуются через них, а сам вьювер не трогается. |
|
|
Текстовая версия | Сейчас: 9.11.2024, 15:22 |