2014-12-18 3 views
0

У меня есть окно, в котором отображаются плитки, каждая из которых имеет некоторый набор информации. Плитки расположены в виде таблиц. Способ, которым это реализовано, заключается в использовании QListWidget для хранения фрагментов, и каждый элемент в качестве элемента виджета задается в элементе QListWidgetItems в QListWidget.Элементы виджета элементов QListWidget: выбранное состояние

Я стилизовал плитки с помощью таблицы стилей. Моя проблема заключается в том, что я не могу выделить плитку, выделенную каким-то образом, когда выбран плит. Если я вообще не использую таблицы стилей, работает выделенная подсветка по умолчанию. Но как только я применяю стили к плиткам, нет разницы в плитке в не выбранных и выбранных состояниях.

Я попытался сделать это следующим образом, но это не сработает.

.tile 
{ 
/*non selected style*/ 
} 

.tileList::item:selected 
.tile 
{ 
/*selected style*/ 
} 

Любая идея, как я могу это достичь?

ответ

1

Я мог бы сделать это в некоторой степени (не комплексное решение), выполнив следующие действия.

  1. Сделать плитки виджет полупрозрачный.
  2. Установить цвет фона QListWidgetItem
  3. Установить цвет фона для QListWidgetItem при выборе

Стили:

.titleList::item { 
    background-color: #fff; 
} 

.lstSnapQuote::item:selected { 
    background-color: #5555FF; 
} 
0

Я решил его в Qt Designer, установив палитру, как я хотел а затем положить

QListView::item:selected { background: palette(Highlight) } 

как стильШироки. Может быть, это помогает кому-то.

Если вы хотите сделать это из центрального qss, я думаю, вам придется удалить часть «.tile» из кода в вопросе.

.tileList::item:selected 
.tile <--- remove this line 
{ 
/*selected style*/ 
}