我已经用 QGraphicsProxyWidgets 形成了一个网格布局,它们是添加到场景中的 Qlabel 小部件。我想通过单击按钮来更新小部件的背景颜色。
如何访问 QLabel 以便更改背景颜色?我尝试使用调色板,但它导致程序崩溃。
void MainWindow::changeBackgroundOfButtons()
{
int itemCount = layout->count();
int numCols = 4;
int row = 0, col = 0;
for (int i = 0; i < itemCount; ++i)
{
QGraphicsProxyWidget *currentWidget = dynamic_cast<QGraphicsProxyWidget*>(layout->itemAt(row, col));
QPalette p(palette());
p.setColor(QPalette::Base, Qt::lightGray);
currentWidget->setPalette(p);
col++;
if (col == numCols) row++;
col = col % numCols;
}
}