Код:
widget->setStyleSheet("background-color: red");
работает хорошо, но вам нужно задать стиль для каждого контейнера виджета добавить в таблицу:
Так что для того, чтобы увидеть изменения, Вам понадобится следующий код:
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);
И результат будет:
Он работает. Но только последний фон изменил ячейку, задав фон. Предыдущий фон клеток восстановлен. – Ufx
@Ufx Посмотреть мои правки –