Как добавить палитру 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);