Цитата(Steklova Olga @ 14.5.2014, 19:38)
1) Какая QPalette::ColorRole в QPalette QListWidget'а используется для отображения текста !isEnabled item'a?
ColorRole QPalette::Dark исп для отобр текста !isEnabled item'a (isEnabled и !isEnabled QListWidget'а).
Цитата(Steklova Olga @ 14.5.2014, 19:38)
2) Какая QPalette::ColorRole в QPalette QListWidget'а используется для отображения фона !isEnabled item'a?
ColorRole QPalette::Base исп для отобр фона (!isEnabled и !isSelected) item'a isEnabled QListWidget'а.
ColorRole QPalette::Window исп для отобр фона (!isEnabled и !isSelected) item'a !isEnabled QListWidget'а.
Цитата(Steklova Olga @ 14.5.2014, 19:38)
3) Можно QListWidget'у задать такую QPalette или такой styleSheet, где одновременно было бы указано, что
цвет фона !isEnabled item'a в !isEnabled QListWidget'е должен быть один (например yellow), а
цвет фона !isEnabled item'a в isEnabled QListWidget'е должен быть другой (например white)?
Видимо, нельзя. Ну и не надо.
4)Мне, собственно, надо было внести следующие изменения в вариант по умолчанию:
- установить черный цвет текста для (!isEnabled и !isSelected) item QListWidget'а,
- отменить выделение цветом selected item'ов в !isEnabled QListWidget,
- отменить выделение цветом selected item'ов в isEnabled QListWidget, который !hasFocus.
Это получилось двумя способами.
MyListWidget::MyListWidget(QWidget *parent) :
QListWidget(parent)
{
QPalette palette = this->palette();
//
//(!isEnabled и !isSelected) item isEnabled QListWidget'а отобразится черным на белом
//(!isEnabled и !isSelected) item !isEnabled QListWidget'а отобразится черным на светло-сером
palette.setColor(QPalette::Disabled, QPalette::Text,
palette.color(QPalette::Active, QPalette::Text));
//
//отменяем выделение цветом
//selected item'ов в !isEnabled QListWidget
palette.setColor(QPalette::Disabled, QPalette::HighlightedText,
palette.color(QPalette::Disabled, QPalette::Text));
palette.setColor(QPalette::Disabled, QPalette::Highlight,
palette.color(QPalette::Disabled, QPalette::Base));
//
//отменяем выделение цветом
//selected item'ов в isEnabled QListWidget, который !hasFocus
palette.setColor(QPalette::Inactive, QPalette::HighlightedText,
palette.color(QPalette::Inactive, QPalette::Text));
palette.setColor(QPalette::Inactive, QPalette::Highlight,
palette.color(QPalette::Inactive, QPalette::Base));
//
this->setPalette(palette);
}
slwStyleSheet =
"QListView::item:disabled:!selected {"
" color: #000000;" //black
"}"
"QListView::item:disabled:selected {"
" color: #000000;" //black
" background: #ECE9D8;" //сер
"}"
"QListView::item:!disabled:active:!selected {"
" color: #000000;" //black
" background: #FFFFFF;" //white
"}"
"QListView::item:!disabled:active:selected {"
" color: #FFFFFF;" //white
" background: #316AC5;" //почти darkblue
"}"
"QListView::item:!disabled:!active:!selected {"
" color: #000000;" //black
" background: #FFFFFF;" //white
"}"
"QListView::item:!disabled:!active:selected {"
" color: #000000;" //black
" background: #FFFFFF;" //white
"}"
;
listWidget->setStyleSheet(slwStyleSheet);