设置小部件背景颜色

Ufx*_*Ufx 8 qt qtablewidget qcheckbox

我用的QCheckBoxQTableWidgetCell

QWidget *widget = new QWidget();
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);
table->setCellWidget(0, 0, widget);
Run Code Online (Sandbox Code Playgroud)

我怎样才能改变细胞背景?

Jac*_*ieg 9

代码:

widget->setStyleSheet("background-color: red");
Run Code Online (Sandbox Code Playgroud)

工作正常,但您需要为添加到表中的每个容器窗口小部件设置样式:

因此,为了查看更改,您需要以下代码:

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);
Run Code Online (Sandbox Code Playgroud)

结果将是:

在此输入图像描述