Стиль QScrollBar для QTreeWidget
Никак не могу задать свой стиль скроллинга для QTreeWidget, к примеру схожий код отлично работает в QTableWidget или QPlainTextEdit а вот QTreeWidget вообще ни как не реагирует на код QSS, даже ошибок не дает.
Qt6 Linux
Что я делаю не так?
QScrollBar:vertical
{
border: 1px solid rgb(229, 229, 229);
background-color: rgb(240, 240, 240);
width: 15px;
margin: 21px 0 21px 0;
}
QScrollBar::handle:vertical
{
background-color: rgb(200, 200, 200);
min-height: 25px;
}
QScrollBar::add-line:vertical
{
border: 1px solid grey;
background-color: rgb(241, 241, 241);
height: 20px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical
{
border: 1px solid grey;
background-color: rgb(241, 241, 241);
height: 20px;
subcontrol-position: top;
subcontrol-origin: margin;
}
QScrollBar:horizontal
{
border: 1px solid rgb(229, 229, 229);
background-color: rgb(240, 240, 240);
height: 15px;
margin: 0px 20px 0 20px;
}
QScrollBar::handle:horizontal
{
background-color: rgb(200, 200, 200);
min-width: 10px;
}
QScrollBar::add-line:horizontal
{
border: 1px solid grey;
background-color: rgb(240, 240, 240);
width: 20px;
subcontrol-position: right;
subcontrol-origin: margin;
}
QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal
{
background: none;
}
QScrollBar::right-arrow:horizontal
{
image: url(path/arrow-right-down.png);
background: none;
}
QScrollBar::right-arrow:horizontal:pressed
{
image: url(path/arrow-right-up.png);
background: none;
}
QScrollBar:left-arrow:horizontal
{
image: url(path/arrow-left-down.png);background: none;
}
QScrollBar:left-arrow:horizontal:pressed
{
image: url(path/arrow-left-up.png);
background: none;
}
QScrollBar::sub-line:horizontal
{
border: 1px solid grey;
background-color: rgb(240, 240, 240);
width: 20px;
subcontrol-position: left;
subcontrol-origin: margin;
}
После вставки кода S. Nick ни чего не изменилось
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
Что я делаю не так?
- Вы не предоставляете минимально-воспроизводимый пример, который демонстрирует проблему.
- Вы не показываете на изображении как отлично работает
QTableWidgetилиQPlainTextEditс вашими стилями, и какQTreeWidgetвообще ни как не реагирует на код QSS.
Sorry, я не проверял ваши стили. Я публикую свои стили, которые работают одинаково со всеми виджетами.
Stylesheet = '''
QScrollBar:horizontal {
height: 15px;
margin: 3px 15px 3px 15px;
border: 1px transparent #2A2929;
border-radius: 4px;
background-color: yellow;
}
QScrollBar::handle:horizontal {
background-color: blue;
min-width: 5px;
border-radius: 4px;
}
QScrollBar::add-line:horizontal {
margin: 0px 3px 0px 3px;
border-image: url(./images/right_arrow_disabled.png);
width: 10px;
height: 10px;
subcontrol-position: right;
subcontrol-origin: margin;
}
QScrollBar::sub-line:horizontal {
margin: 0px 3px 0px 3px;
border-image: url(./images/left_arrow_disabled.png);
height: 10px;
width: 10px;
subcontrol-position: left;
subcontrol-origin: margin;
}
QScrollBar::add-line:horizontal:hover,QScrollBar::add-line:horizontal:on {
border-image: url(./images/right_arrow.png);
height: 10px;
width: 10px;
subcontrol-position: right;
subcontrol-origin: margin;
}
QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on {
border-image: url(./images/left_arrow.png);
height: 10px;
width: 10px;
subcontrol-position: left;
subcontrol-origin: margin;
}
QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal {
background: none;
}
QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {
background: none;
}
QScrollBar:vertical {
background-color: #2A2929;
width: 15px;
margin: 15px 3px 15px 3px;
border: 1px transparent #2A2929;
border-radius: 4px;
}
QScrollBar::handle:vertical {
background-color: red;
min-height: 25px;
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/down_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::add-line:vertical:hover, QScrollBar::add-line:vertical:on {
border-image: url(./images/down_arrow.png);
height: 10px;
width: 10px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {
background: none;
}
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
background: none;
}
'''
Автор решения: Сергей Т
→ Ссылка
Вот эта гадость отключала все стили после нее, без сообщения об ошибки
QTreeWidget::item(1)
{
border: 0px;
padding-left: auto;
padding-right: auto;
}

