如何将调色板qlabel添加为qtablewidget项?

时间:2013-10-24 10:48:43

标签: qt qtablewidget qtablewidgetitem

我正在尝试将带有调色板的标签添加到QTableWidget中。但它没有显示我设置为标签调色板的颜色。这是我的代码,

            QWidget *colorTableWidget = new QWidget();
            QLabel *lbl = new QLabel();
            lbl->setAutoFillBackground(true);

            QPalette palette;
            palette.setColor(lbl->backgroundRole(), QColor("RED") );
            lbl->setPalette(palette);

            QGridLayout *gridLayout = new QGridLayout();
            gridLayout ->addWidget(lbl,0,0);

            colorTableWidget->setLayout(gridLayout);

            ui->tableWidget->setCellWidget(row,0,colorTableWidget);

任何人都可以告诉我这里有什么问题..?,当我向标签添加文本但它不适用于调色板时,同样的工作正常。我在win 7环境中使用Qt 4.8.4。

1 个答案:

答案 0 :(得分:0)

在我的代码中使用网格布局的目的并不清楚。我会用以下简化的方式重新编写代码:

QLabel *lbl = new QLabel;
lbl->setAutoFillBackground(true);

QPalette palette = lbl->palette();
palette.setColor(lbl->backgroundRole(), Qt::red );
lbl->setPalette(palette);

ui->tableWidget->setCellWidget(row, 0, lbl);