我有QComboBox小部件,可以选择颜色。
它的样子 "红色(图标)" "红色(文字)" "绿色" "绿色" "黄色" "黄色"
首先是具有特殊颜色的图标(与文本相同),其次是文本。
现在我想取这个值来绘制我的表(我插入数据的地方)
我尝试制作:
ui.comboBox->setItemData(0, Qt::red, Qt::UserRole);
然后从UserRole获取颜色,但我不能这样做(编译器错误!)
最后我必须将文字改为颜色:
if(text == "red")
color = Qt::red;
else ...
但这不是一个惊人的解决方案
修改
错误:
错误C2248:' QVariant :: QVariant' :无法访问私人会员 在课堂上宣布' QVariant'
组合框:
我希望在ComboBox中获得选择(选择为RED)的颜色,并在此颜色的QTableWidget(在特殊单元格中)绘制背景。
答案 0 :(得分:0)
试试这段代码。评论中提供了描述。
QPixmap px(15,15);//create pixmap,size choose yourself, by your taste
px.fill(QColor(Qt::red));//all pixmap will be red
QIcon icon(px);
ui->comboBox->addItem(icon,"Red");//set our icon
px.fill(QColor(Qt::blue));//use our pixmap again, but with another color
icon.addPixmap(px); //use our icon again
ui->comboBox->addItem(icon,"Blue");
px.fill(QColor(Qt::green));
icon.addPixmap(px);
ui->comboBox->addItem(icon,"Green");
//and so on, do this procedure with other colors
此代码可以按您的需要工作(以证明我添加了屏幕截图)