Как удалить тень под выпадающим списком QComboBox?
Весь вопрос уместился в заголовке
Вот таблица стилей:
QComboBox {
border: 2px solid rgb(212, 215, 255);
border-radius: 10px;
padding-left: 5px;
padding-right: 5px;
background-color: rgb(243, 244, 255);
}
QComboBox:hover {
border: 2px solid rgb(194, 194, 255);
}
QComboBox:focus {
border: 2px solid rgb(140, 146, 255);
}
QComboBox::drop-down
{
width: 0px;
height: 0px;
border: 0px;
}
QComboBox QAbstractItemView {
color: rgb(0, 0, 0);
background-color: rgb(243, 244, 255);
padding: 10px;
border: 2px solid rgb(212, 215, 255);
border-radius: 10px;
padding-left: 5px;
padding-right: 5px;
selection-background-color: rgb(140, 146, 255);
}
QComboBox QListView{
outline: 0px;
}
/* ===================== QScrollBar ======================= */
QScrollBar:vertical {
border: none;
background-color: rgb(243, 244, 255);
width: 10px;
}
QScrollBar::handle:vertical {
background-color: rgb(194, 194, 255);
min-height: 5px;
border-radius: 4px;
}
QScrollBar::sub-line:vertical {
margin: 3px 0px 3px 0px;
border-image: url(./images/up_arrow_disabled.png);
height: 10px;
width: 10px;
subcontrol-position: top;
subcontrol-origin: margin;
}
QScrollBar::add-line:vertical {
margin: 3px 0px 3px 0px;
border-image: url(./images/up_arrow_disabled.png);
height: 10px;
width: 10px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical:hover,QScrollBar::sub-line:vertical:on {
border-image: url(./images/up_arrow.png);
height: 10px;
width: 10px;
subcontrol-position: top;
subcontrol-origin: margin;
}
QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {
background: none;
}
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
background: none;
}
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Выпадающий список это модальное окно и тень ему добавляет оконный менеджер.
Значит никак средствами css это не исправить.
Нужно этому окну добавить хинт Qt::NoDropShadowWindowHint чтоб попросить ОС не добавлять тень.
В плюсах это делается через comboBox->view()->window()->setWindowFlags(Qt::Popup | Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint ); ссылка
В питоне это будет следующая строка (из коммента):
self.comboBox.view().window().setWindowFlags(
Qt.Popup | Qt.FramelessWindowHint | Qt.NoDropShadowWindowHint
)
