Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: fear от Октябрь 29, 2006, 16:44



Название: Выделение модифицированных данных модели
Отправлено: fear от Октябрь 29, 2006, 16:44
Как можно осуществить выделение модифицированных данных модели (жирным шрифтом или цветом). Т.е. чтобы при изменениии из view`ера данных можели они отображались иначе.


Название: Выделение модифицированных данных модели
Отправлено: Tonal от Октябрь 29, 2006, 17:29
Возврати из метода data объект шрифта при запросе роли FontRole
Вот пример кода на PyQt, перевести на С++ - элементарно
Код:

  def data(self, index, role):
    if not index.isValid():
      return QtCore.QVariant()

    if role == QtCore.Qt.FontRole:
      simp = index.internalPointer()
      if self.pred and self.pred(simp):
        return QtCore.QVariant(self.inc_font)
      return QtCore.QVariant()

    if role not in (QtCore.Qt.DisplayRole, QtCore.Qt.EditRole):
      return QtCore.QVariant()

    simp = index.internalPointer()
    if not simp:
      return QtCore.QVariant()

    return QtCore.QVariant(self.hdr[index.column()][1](self, simp))



Название: Выделение модифицированных данных модели
Отправлено: bigirbis от Октябрь 29, 2006, 18:34
Собственно, на плюсах (применительно к QStandardItemModel):

Код:
void slotItemChanged( QStandardItem * item )
{
 if( !item )
  return;
 QFont font = item->data( Qt::FontRole );
 font->setBold( true );
 item->setData( font, Qt::FontRole );
 item->setData( QColor( Qt::red ), Qt::TextColorRole );
}