Форум сайта python.su
Доброго времени суток.
Я совсем еще мало знаком с PyQt, поэтому прощу помощи здесь, т.к более достойного места найти не смог.
Дано:
QtGui.QTreeView()
простенькая модель из какого-то примера идущего в коробке с PyQt
Все это отображает древовидную структуру (пусть это будут обычные файлы и папки)
Хочется:
Что бы каждый заголовок группы отображался, например, 16-ым dejavu-sans bold
PS:
Ничего в голову не пришло, кроме, как рисовать текст переопределяя метод paint в QItemDelegate (drawText)
Но мне кажется, что есть более красивое решение.
Надеюсь на ваш совет.
Офлайн
в классе модели тебе нужно изменить метод data()
в общем виде он выглядит примерно так:
def data(self, index, role):
if index.isValid():
if role == Qt.DisplayRole:
value = self.mytable[index.row()][index.column()]
return QVariant(value)
return QVariant()
def data(self, index, role):
if index.isValid():
if role == Qt.DisplayRole:
value = self.my_data[index.row()][index.column()]
return QVariant(value)
if role == Qt.ForegroundRole:
return QColor(Qt.red)
if role == Qt.FontRole:
font = QFont()
# выставляем размеры, семейство...
return font
return QVariant()
Отредактировано (Май 2, 2010 23:07:33)
Офлайн
Заработало !
Большое спасибо, хоть начал понемногу понимать принцип работы
Офлайн
Подскажите, в чем может быть проблема: return QVariant() приводит к ошибке
TypeError: PyQt4.QtCore.QVariant represents a mapped type and cannot be instantiated
Офлайн