Как добавить палитру qlabel как элемент qtablewidget?

Я пытаюсь добавить метку с цветовой палитрой в 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);

Может ли кто-нибудь сказать мне, что здесь не так?.., то же самое работает, когда я добавляю текст на метку, но не работает для цветовой палитры. Я использую Qt 4.8.4 в среде win 7.

1 ответ

Цель использования макета сетки в вашем коде мне не ясна. Я бы переписал ваш код следующим, намного упрощенным способом:

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);
Другие вопросы по тегам