Russian Qt Forum
Ноябрь 24, 2024, 04:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите раскрасить ряды QTableView в зелёный цвет.  (Прочитано 4897 раз)
Dr.Vlad
Гость
« : Май 27, 2010, 18:33 »

Помогите , пожалуйста, раскрасить ряды QTableView в зелёный цвет. Выборка рядов по определённому признаку.
Записан
crossly
Гость
« Ответ #1 : Май 27, 2010, 18:47 »

варианта 2.... использовать делегат... или унаследоватся от модели и переопределить метод data
Записан
KuZ
Гость
« Ответ #2 : Май 27, 2010, 19:43 »

имхо лучше делегат. В котором сделать что-то типо такого:
Код:
model->setData( model->indexFromItem( model->item(x,y) ), Qt::green, Qt::BackgroundColorRole );
Записан
Kolobok
Гость
« Ответ #3 : Май 27, 2010, 22:40 »

имхо лучше делегат. В котором сделать что-то типо такого:
Код:
model->setData( model->indexFromItem( model->item(x,y) ), Qt::green, Qt::BackgroundColorRole );

Не надо советовать такую глупость.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Май 27, 2010, 22:58 »

>>Выборка рядов по определённому признаку.
по какому признаку?
Записан

Юра.
KuZ
Гость
« Ответ #5 : Май 28, 2010, 00:29 »

имхо лучше делегат. В котором сделать что-то типо такого:
Код:
model->setData( model->indexFromItem( model->item(x,y) ), Qt::green, Qt::BackgroundColorRole );
Подскажи как лучше плз, чтоб и самому знать.

Не надо советовать такую глупость.
Записан
SibViking
Гость
« Ответ #6 : Май 28, 2010, 04:45 »

Лучше свою собственную модель создать на базе QAbstractTableModel, куда можно засунуть и "ряды" и "определенный признак", а чтобы в цвет раскрасить и  правильным образом вывести воспользоваться ролями в методе data

QVariant MyModel::data(const QModelIndex &index, int role) const
{
    if(!index.isValid())
        return QVariant();
    ...
    if(role == Qt::BackgroundRole) {
           if("что то там с признаком")
               return Qt::green;
    }
    ...
}
« Последнее редактирование: Май 28, 2010, 05:00 от SibViking » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.067 секунд. Запросов: 22.