Не удалось скрыть Choice-Indicator от QComboBox
Программист
Когда я устанавливаю цвет фона представления списка, принадлежащего QComboBox (для QSS), тогда этот QComboBox больше не будет использовать встроенный opticel-look-and feel. Instaed Я должен указать все оптические настройки также в соответствии с таблицей стилей QSS:
QComboBox QListView {
background-color:white;
border:1px solid black;
}
Представление списка, в котором отображается выбираемый элемент, теперь отображает флажок слева. Этот флажок установлен для тех элементов, которые были выбраны при последнем использовании.
Как я могу скрыть столбец с флажками, чтобы они были невидимыми и не занимали место на экране?
Заранее спасибо...
1 ответ
QSS Временное решение для сложной темы прорисовки QComboBox
Если вы не используете блок QSS, QComboBox рисуется с его OS-Look-and-Feel. Если вы начинаете задавать правила QSS, некоторые или все элементы управления QComboBox начинают терять OS-Look-and-Feel. В худшем случае вы должны указать все свойства в QSS сейчас.
Предметом этой статьи является индикатор выбора, нарисованный классом QStyleViewItem, помощником рендеринга, реализованным в.../src/gui/widgets/qcombobox_p.h в источниках QT. Эта функциональность кажется невозможной изменяемой подклассом QProxyStyle, который может использоваться в других случаях для сложных задач макета.
Тем не менее, я нашел решение в QSS, указав хорошо выбранный набор правил:
/* Background color of popup-list.*/
QComboBox QListView{
background-color:white;
border:1px solid gray;
}
/* Needed to complete the rule set. */
QComboBox::item:alternate {
background: white;
}
/* Color of the selected list item. */
QComboBox::item:selected {
border: 1px solid transparent;
background:yellow;
}
/* Indicator will shine through the label text if you don't make it hidden. */
QComboBox::indicator{
background-color:transparent;
selection-background-color:transparent;
color:transparent;
selection-color:transparent;
}