web-dev-qa-db-fra.com

Comment changer la couleur d'arrière-plan d'une cellule vide dans QTableWidget

Si une cellule contient des données, en utilisant

tableWidget->item(8,0)->setBackgroundColor(Qt::red);

pour changer la couleur d'arrière-plan fonctionnera, mais si une cellule est vide, elle échouera.

21
spy8888

Vous ne pouvez pas définir la couleur d'arrière-plan d'une cellule à moins qu'elle ne contienne un QTableWidgetItem (car la couleur d'arrière-plan est une propriété de l'élément).

Vous devez donc d'abord remplir votre QTableWidget avec des éléments vides. Dans votre exemple, créez l'élément avant d'essayer de définir la couleur d'arrière-plan.

tableWidget->setItem(8, 0, new QTableWidgetItem);
tableWidget->item(8, 0)->setBackground(Qt::red);

Veuillez également noter que vous devez utiliser setBackground au lieu de setBackgroundColor car ce dernier est obsolète.

30
Daniel Hedberg