Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt: можно ли для QListView изменить цвет, фон, шрифт для отдельной строки? [RSS Feed]

#1 Дек. 23, 2012 12:38:59

clinicalfilm
Зарегистрирован: 2012-09-28
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt: можно ли для QListView изменить цвет, фон, шрифт для отдельной строки?

основной вопрос присутствует в названии темы, но вкратце: одномерная модель в QListView, вот хотелось бы как-нибудь через item воздействовать на параметры отображения строки (швет, размер, цвет фона .. итд)?
бывает ли такое?

Офлайн

#2 Дек. 23, 2012 13:34:35

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

PyQt: можно ли для QListView изменить цвет, фон, шрифт для отдельной строки?

Насколько я помню, QListView берёт цвет, шрифт, и т.д. из модели. Надо в модели в методе data написать что то такое:

def data(self, index, role=Qt.DisplayRole):
    ...
    if role == Qt.FontRole:
        if index == <строка_номер_N>:
            return QVariant(QFont(<особенный_шрифт>))
        else:
            return QVariant(QFont(<обычный шрифт>))
    ...
Тоже самое сделать для Qt.BackgroundRole и всего что нужно изменить.



Офлайн

#3 Дек. 23, 2012 21:47:03

clinicalfilm
Зарегистрирован: 2012-09-28
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt: можно ли для QListView изменить цвет, фон, шрифт для отдельной строки?

ok, спасибо буду попробовать .. я правда совсем ничего не понял из примера, но главное, что это хотя бы возможно .. )))

Отредактировано clinicalfilm (Дек. 23, 2012 21:47:23)

Офлайн

#4 Дек. 23, 2012 23:06:04

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

PyQt: можно ли для QListView изменить цвет, фон, шрифт для отдельной строки?

Документация, а так же примеры по вашему вопросу тут. Класс QListView только отображает данные которые хранятся в классе модели, например это может быть наследник QAbstractItemModel. При прорисовке содержимого класс вида, в зависимости от того что он отображает, вызывает некоторые методы модели что бы получить текст для отображения, цвет фона ячейки, шрифт и т.д. Вы в вашей модели переопределяете этот метод и в зависимости от номера строки возвращаете нужный вам цвет и шрифт. В примере выше параметр role заведует тем что хочет узнать про ячейку класс вида. Я давненько не заглядывал в эту кухню, пишу по памяти, так что если что не так гуру меня поправят :) . Здесь запись семинара по MVC в Qt, для введения можно послушать.



Офлайн

  • Начало
  • » GUI
  • » PyQt: можно ли для QListView изменить цвет, фон, шрифт для отдельной строки?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version