我尝试获取父背景并将其设置为复选框的背景颜色。我有这样的绘制方法来绘制复选框:
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);
}
但如何设置此复选框的背景颜色呢?
3条答案
按热度按时间mf98qq941#
wz8daaqr2#
您可以在drawControl之前添加代码:
2nbm6dog3#
更新日期:
您可以尝试从小部件初始化QStyleOptionButton,这样您将获得小部件的调色板。
旧建议:
更改backgroundBrush选项可能有效:
或设置选项backgroundColor