大家好,Extrend QAbstractListModel显示自定义背景颜色?
我已经延长我自己QAbstractListModel改变QCombobox的背景色。如图所示,我有两个问题。 1)如第一张图像快照所示,背景颜色不会出现在所选项目中。 2)选择项目时,背景变为默认高亮颜色(浅蓝色)
是否有解决这两个问题的方法?
这是我的QAbstractListModel实现。
RzContourLabelModel::RzContourLabelModel(RzContourLabelContext *contourLabelCtx,int max,QObject *parent) : QAbstractListModel(parent){
contourCtx=contourLabelCtx;
QList contourLabels=contourLabelCtx->getLabels();
for(int i=0;i= colorLabels.size())
return QVariant();
if (role == Qt::DisplayRole){
QString str;
str.setNum(colorLabels.at(index.row()));
return str;
}
if (role == Qt::BackgroundRole)
{
int labelNum=colorLabels.at(index.row());
QColor col= contourCtx->getLabelColor(labelNum);
return col;
}
return QVariant();
}
如何不想按颜色可视化选择?也许尝试用setSelectionMode(NoSelection)禁用选择。不知道是否QComboBox可以处理。 – 2011-02-02 07:06:34