0

我已经用 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;
}

}
4

0 回答 0