0
my general questionに従います。ここで@eyllanescは私の質問に親切に答えています。PyQt Tableviewの背景色は、TrueまたはFalseではなく、テキスト値に基づいています
好奇心の渦中に、私は文字列ではなく文字列をチェックするコードに変更しようとしました。すべての行がグレーになりました。 @eyllanescから
オリジナルコード:
def data(self, item, role):
if role == Qt.BackgroundRole:
if QSqlQueryModel.data(self, self.index(item.row(), 3), Qt.DisplayRole):
return QBrush(Qt.yellow)
if role == Qt.DisplayRole:
if item.column() == 3:
return True if QSqlQueryModel.data(self, item, Qt.DisplayRole) == 1 else False
return QSqlQueryModel.data(self, item, role)
私は
def data(self, item, role):
if role == Qt.BackgroundRole:
if QSqlQueryModel.data(self, self.index(item.row(), 2), Qt.DisplayRole):
return QBrush(Qt.yellow)
if role == Qt.DisplayRole:
if item.column() == 2:
return True if QSqlQueryModel.data(self, item, Qt.DisplayRole) == 'Young' else False
return QSqlQueryModel.data(self, item, role)
に変更した場合、すべての行が黄色に変わります。
何がありますか?誰も私を理解するのを助けるだろうか?
N.B.私は非空のpython文字列がTrueと同等になることを知っています
N.B. (CASE WHENなどを使用して)SQLクエリに別の列を追加し、次にテスト列を非表示にするためにsetColumnHidden(col、True)を使用して、目的の動作を複製できます。
if role == Qt.BackgroundRole
内部の状態を確認する必要がありますか? – eyllanescあなたが書いた例を続けると、 'lastname ==" Young "' – Alan