QComboBox所选项目背景未反映

时间:2013-07-19 05:18:31

标签: qt

我想通过样式表设置QComboBox样式,所以我应用了以下qss语法。

 QComboBox {
    border: none;
    border-radius: 0px;
background-color: rgb(255, 255, 255);
color: rgb(0, 0, 0);
selection-background-color: rgb(0, 85, 255);
font: 14pt;
 }

 QComboBox:editable {
     background-color: rgb(255, 255, 255);
 }

QComboBox:!editable:on, QComboBox::drop-down:editable:on {
     background-color: rgb(200, 200, 200);
 }

 QComboBox:on { /* shift the text when the popup opens */
     padding-top: 3px;
     padding-left: 4px;
 }

QComboBox::drop-down {
width: 0px;
height:0px;
border-radius: 0px;
}

QComboBox::drop-down:hover
{
    border: none;
    border-radius: 0px;
background-color: rgb(0, 170, 255);
}   

QComboBox QAbstractItemView{
background-color: rgb(255, 255, 255);
    border-radius: 0px;
color: rgb(0, 0, 0);
font: 14pt;
 }

QComboBox QAbstractItemView:item{
color: rgb(85, 85, 0);
background-color: rgb(170, 170, 127);
selection-background-color: rgb(170, 170, 255);
selection-color: rgb(85, 0, 127);
height:40px;
font: 16pt;
 }

问题: selection-background-color:rgb(170,170,255);在

     QComboBox QAbstractItemView:item{
color: rgb(85, 85, 0);
background-color: rgb(170, 170, 127);
selection-background-color: rgb(170, 170, 255); <- Not Working
selection-color: rgb(85, 0, 127);
height:40px;
font: 16pt;
 }

没有申请。下拉所选项目背景未反映。 请帮我解决这个问题。

3 个答案:

答案 0 :(得分:5)

你试过了吗?

QComboBox QAbstractItemView
{
background-color: rgb(255, 255, 255);
selection-background-color: rgb(170, 170, 255); <- Should Now Work
border-radius: 0px;
color: rgb(0, 0, 0);
font: 14pt;
}

答案 1 :(得分:1)

我刚才遇到了同样的问题,对我而言,我在互联网上找到的解决方案都没有。最后这是什么:

QComboBox::item:selected
{
    background-color: rgb(170, 170, 255);
    color: rgb(0, 0, 0);
}

希望这可以帮助其他用户搜索此内容。 也许这在最近的版本中有所改变(我使用Qt 5.7)。

答案 2 :(得分:0)

我遇到了这个问题。每次选择组合框(GUI中的焦点项目)时,该框将为蓝色,带有白色文本。我最初尝试添加:

QComboBox QAbstractItemView {
selection-background-color: white;
}

但是,这没有用。

经过一番调查,我意识到“ selection-background-color”标签是正确的,但是它不在正确的对象上。标记“ QComboBox QAbstractView”将更改下拉视图,但不会更改QComboBox本身。为此,您必须将标签附加到QComboBox(而不仅限于ComboBox的QAbstractItemView)。这就是我将我的颜色从蓝色更改为白色的方式(选择时):

QComboBox {
selection-background-color: white;
}