1
我試圖去掌握如何將數據從數據庫顯示到Qt表中。我想要做的是將布爾值上的顯示值更改爲「PASS」或「FAIL」,然後根據此更改行顏色。根據初始列的值更改表顏色
我已經創建了模型的QSqlQueryModel
派生類和推翻的功能:
QVariant TestResultsViewModel::data(const QModelIndex &index, int role) const
{
QVariant value = QSqlQueryModel::data(index, role);
if (value.isValid() && role == Qt::DisplayRole){
switch(index.column()){
case 0:
return value.toBool() ? "PASS" : "FAIL";
}
}
if (role == Qt::TextColorRole){
// Get column 0
QVariant pass = index.sibling(index.row(), 0).data();
if (pass.isValid()){
if (pass.toBool()){
return QVariant::fromValue(QColor(Qt::blue));
}
else{
return QVariant::fromValue(QColor(Qt::red));
}
}
}
return value;
}
但是,似乎發生的是,第一部分先完成,然後列的值是「PASS」或「失敗」而不是0,1,因此顏色不變。
那麼我該怎麼做呢?
這是完美的。謝謝! – Firedragon
隨時。你可以跳過Qt :: DisplayRole參數,data()默認爲這個參數。我相應地編輯了答案。 –