Il codice:
widget->setStyleSheet("background-color: red");
funziona bene, ma è necessario impostare lo stile per ogni widget di contenitore che si aggiunge al tuo tavolo:
Quindi, al fine di vedere il cambiamento è necessario il seguente codice:
QWidget *widget = new QWidget();
widget->setStyleSheet("background-color: red");
QCheckBox *checkBox = new QCheckBox();
QHBoxLayout *layout = new QHBoxLayout(widget);
layout->addWidget(checkBox);
layout->setAlignment(Qt::AlignCenter);
layout->setContentsMargins(0, 0, 0, 0);
widget->setLayout(layout);
QWidget *widget2 = new QWidget();
widget2->setStyleSheet("background-color: red");
QCheckBox *checkBox2 = new QCheckBox();
QHBoxLayout *layout2 = new QHBoxLayout(widget2);
layout2->addWidget(checkBox2);
layout2->setAlignment(Qt::AlignCenter);
layout2->setContentsMargins(0, 0, 0, 0);
widget2->setLayout(layout);
ui->tableWidget->setCellWidget(0, 0, widget);
ui->tableWidget->setCellWidget(0, 1, widget2);
E il risultato sarà:
fonte
2014-10-09 19:27:45
Funziona. Ma solo l'ultimo sfondo modificato della cella ha impostato lo sfondo. Recupero degli sfondi delle celle precedenti. – Ufx
@Ufx Vedi le mie modifiche –