Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Григорий от Октябрь 16, 2012, 08:52



Название: Раскраска строк в QTableView
Отправлено: Григорий от Октябрь 16, 2012, 08:52
Уважаемые форумчане , помогите разобраться,
необходимо подсвечивать некоторые строки в QTableView в зависимости от значения в поле к примеру с именем "color"

делаю через создание собственной модели

Код:
class SqlQModel:public QSqlQueryModel{
 Q_OBJECT
 public:
  QVariant data(const QModelIndex& i,int role)const{
   QVariant v=QSqlQueryModel::data(i,role);
   if(role == Qt::BackgroundColorRole){
    QSqlQueryModel* m=(QSqlQueryModel*)i.model();
    if (m->record().value("color").toInt()>0) return qVariantFromValue(QColor(Qt::darkRed));
    else return qVariantFromValue(QColor(Qt::green));
   }
   else return v;
  }
};


по результатам вот этого кода даже если в поле "color" есть значение больше 0 у меня все равно все строки  зеленые, т.е m->record().value("color").toInt() всегда 0,
что я делаю не так...?


Название: Re: Раскраска строк в QTableView
Отправлено: lighting от Октябрь 16, 2012, 10:24
Код
C++ (Qt)
int QVariant::toInt ( bool * ok = 0 ) const
ok в твоем случае что возвращает?