2013-10-05 2 views
1

В моем проекте Qt в моем диалоговом окне у меня есть табличный вид, и я использую прокси-модель и модель таблицы для установки своей базы данных из SQL. Теперь я хочу изменить цвет столбцов таблицы таблицы [только столбцы [3, 4, 5]. После поиска в Интернете, наконец, я добился изменения цвета, но цвет для всего вида таблицы. Я использую следующий код:Qt TableView с StyleSheet

ui->tableView->setStyleSheet("background-color: yellow"); 

Что я должен писать, чтобы сделать желтый, только некоторые столбцы?

Я думаю, что я должен изменить «background-color» на что-то еще, но я не очень хорошо разбираюсь в CSS, и я не знаю, что искать.

ответ

1

Вы должны окрашивать в соответствии с ячейкой, а не функции QtableWidget или QtableModel:

void MyParentWidget::highlightCell(const QModelIndex &cellIndex) 
{ 
for(int i=0; i<cellIndex.model()->columnCount(); i++) 
{ 
    for(int j=0; j<cellIndex.model()->rowCount(); j++) 
    { 
    if(i == cellIndex.column() && j == cellIndex.row()) 
    { 
    ((QStandardItemModel*)cellIndex.model())->item(cellIndex.row(),  i)->setData(QBrush(Qt::yellow), 
Qt::BackgroundRole); 
    } 
    else 
    { 
    ((QStandardItemModel*)cellIndex.model())->item(cellIndex.row(), i)->setData(QBrush(Qt::white), 
Qt::BackgroundRole); 
    } 
    } 
} 
} 
+0

Спасибо всем за помощь , но ничего не работает, я пробовал ваши советы. Я даже не получаю функцию -> item() в моей intellisense. – user2521257

+0

использование документация .. – PersianGulf

Смежные вопросы