我正在尝试获取父背景并将其设置为复选框背景颜色。我有这个绘制方法来淹没复选框:
void paint( QPainter* painter,
const QStyleOptionViewItem& option,
const QModelIndex &index) const
{
// Get item data
bool value = index.data(Qt::UserRole).toBool();
QString text = index.data(Qt::DisplayRole).toString();
// Fill style options with item data
const QStyle *style = QApplication::style();
QStyleOptionButton opt;
opt.state |= value ? QStyle::State_On : QStyle::State_Off;
opt.state |= QStyle::State_Enabled;
opt.text = text;
opt.rect = option.rect;
// Draw item data as CheckBox
style->drawControl(QStyle::CE_CheckBox,&opt,painter);
}
但如何设置此复选框的背景颜色?
答案 0 :(得分:-1)
<强>更新强>
您可以尝试从窗口小部件初始化QStyleOptionButton,这样您就可以获得窗口小部件的调色板。
QStyleOptionButton opt;
opt.initFrom(this);
旧建议:
更改opt.backgroundBrush可能有效:
opt.backgroundBrush = QBrush(QColor(0, 0, 0, 102));
或设置opt.backgroundColor