我可以像这样更改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);
它变成白色,但当它处于下拉状态时,它仍然有一些灰色(默认)。
如何更改?
答案 0 :(得分:0)
您还应该设置QPalette::Base
角色。从Qt文档中引用QPalette::Base
:
主要用作文本输入小部件的背景颜色,但可以 也可用于其他绘画 - 例如组合框的背景 下拉列表和工具栏句柄。它通常是白色或其他 浅色。
所以你也应该:
palette.setColor(QPalette::Base, Qt::white);
答案 1 :(得分:0)
您还可以在组合框的下拉视图中再应用一个调色板。要获取指向下拉视图的指针,您可以使用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);