我可以这样更改QComboBox颜色:

QPalette palette = ui->selectSource->palette();
palette.setColor(QPalette::Active, QPalette::Button, Qt::white);
palette.setColor(QPalette::Inactive, QPalette::Button, Qt::white);
ui->selectSource->setPalette(palette);

它变成白色,但是当它处于下拉状态时,它仍然具有一些灰色(默认)。

如何改变呢?

最佳答案

您也可以在组合框的下拉 View 中再应用一个调色板。要获得指向下拉 View 的指针,可以使用QComboBox::view()函数。因此,您的代码将如下所示:

QPalette palette = ui->selectSource->palette();
palette.setColor(QPalette::Active, QPalette::Button, Qt::white);
palette.setColor(QPalette::Inactive, QPalette::Button, Qt::white);

QPalette view_palette = ui->selectSource->view()->palette();
view_palette.setColor(QPalette::Active, QPalette::Background, Qt::white);
ui->selectSource->view()->setPalette(view_palette);

关于c++ - 如何在下拉状态下设置QComboBox背景色?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27374213/

10-12 21:08