QComboBox的背景颜色在Windows 7

时间:2016-04-17 08:26:33

标签: qt colors combobox background

我正在使用QT(最新版本5.6.0 msvc 64位),并希望comboBox显示为白色,但在win 7上似乎无法正确显示。

我尝试过以下一种或多种组合:

QPalette p = ui.comboBox->palette();
    p.setColor(QPalette::Active, QPalette::Button, Qt::white);
    p.setColor(QPalette::Inactive, QPalette::Button, Qt::white);
    p.setColor(QPalette::Active, QPalette::Background, Qt::white);
    p.setColor(QPalette::Active, QPalette::Base, Qt::white);
    p.setColor(QPalette::Inactive, QPalette::Background, Qt::white);
    p.setColor(QPalette::Inactive, QPalette::Base, Qt::white);
    p.setColor(ui.comboBox->backgroundRole(), Qt::white);
    ui.comboBox->setPalette(p) 

但他们都没有改变显示器至少在win 7上。我也试过了:

ui.comboBox->setStyleSheet("QComboBox { background-color: white; }");

但显示器变为: enter image description here

虽然它是白色,但向下指针周围有一个灰色框。我希望它更像这样:enter image description here

编辑:我试过这个:

ui.comboBox->setStyleSheet("QComboBox { background-color: white; } QComboBox::drop-down { background-color: white; }");

但未显示向下箭头。如何在显示箭头的同时改变颜色?

任何解决方案,建议或想法?感谢。

1 个答案:

答案 0 :(得分:0)

目前,我找到了解决方案。虽然它可能不是最好的,但是可以添加自定义向下箭头图像(白色背景上的黑色箭头),并将其与样式表一起使用,如下所示:

That's my HTML Code

<div ng-controller="MainController" class="list">
<div class="item" ng-class="{'editing-item' : editing, 'edited': todo.edited}" ng-repeat="todo in todos">
        <div class="actions">
            <a href="" ng-click=" editing = !editing">Edit</a>
            <a href="" ng-click="helloConsole()">Save</a>
            <a href="" class="delete">Delete</a>
        </div>
</div> 
</div>