【发布时间】:2014-08-18 07:05:15
【问题描述】:
我正在尝试在 QT5 中设置组合框的样式。我正在使用 QT Creator 进行布局并在启动时加载应用程序范围的样式表。
我的组合框相关的css如下:
QComboBox
{
color:white;
background-color: qlineargradient(x1:0, y1:0, x2:1,y2:1, stop: 1 rgba(228, 41, 81, 100), stop: 0 rgba(234, 107, 101, 100));
border-color: rgba(255,255,255,200);
border-width: 1px;
border-style: solid;
}
QComboBox QListView
{
border-style: none;
background-color: qlineargradient(x1:0, y1:0, x2:1,y2:0, stop: 1 rgba(228, 41, 81, 100), stop: 0 rgba(234, 107, 101, 100));
}
QComboBox::drop-down
{
width: 20px;
border: 1px;
border-color:white;
border-left-style:solid;
border-top-style: none;
border-bottom-style: none;
border-right-style: none;
}
QComboBox::down-arrow
{
image: url(:/ArrowImages/images/whitearrowdown16.png);
width: 16px;
height: 16px;
}
但组合框中的文本颜色仍为默认(黑色)颜色。下拉菜单中的颜色是白色。边框颜色和样式都可以正常工作。组合框上的标签是我需要单独设置样式的某种子控件吗?还是我错过了什么?
谢谢。
编辑:
为清晰起见添加了屏幕截图
编辑 2: 看起来这只发生在组合框设置为不可编辑时(这是我的程序的正确行为,所以并没有真正帮助我。)当组合框设置为可编辑时,它正确地遵循样式。我试过添加
QCombobox:!editable
{
color:white;
}
但这并不能解决问题。
【问题讨论】:
-
如果你从一个文件中加载样式表,也许你在你的应用程序中加载了另一个样式表,它覆盖了那个特定的样式?您可以尝试使用
QComboBox#YOUR_SPECIFIC_COMBO_BOX_NAME { color: white; }
标签: qt qt5 qtstylesheets