Задать вопрос

Как заменить фон scrollbar в PYQT Designer?

Не пойму, почему у меня не меняется фоновый цвет скролбара. Цвет самого ползунка меняется, но вот фон - нет. Вместо этого фон какой то зернистый (видно на скрине). Также заметил, что сзади скруглённых краёв ползунка виднеются очертания фона, который я, как я думал, выставлял. Сейчас для наглядности поставил зелёный и при этом заметил, что зернистый фон тоже приобрёл лёгкий зелёный оттенок, ставлю красный фон - лёгкий красный оттенок. Подозреваю, что всё таки я редактирую параметр, который действительно отвечает за фон, но скорее всего что то мешает работать этому, так как я хочу.

Скрин программы:
664a259abd143750960581.png

Структура в QT Designer:
664a25b24d448143056001.png

Стили я выставлял в родительский элемент main_frame. Вот сами стили:
QScrollBar:vertical {
    border: none;
    background: green; /* вот этот параметр я редактирую */
    width: 40px;
    margin: 15px 0 15px 0;
    border-radius: 0px;
}

/*  HANDLE BAR VERTICAL */
QScrollBar::handle:vertical {
    background-color: rgb(80, 80, 122);
    min-height: 30px;
    border-radius: 20px;
}
QScrollBar::handle:vertical:hover{
    background-color: rgb(255, 0, 127);
}
QScrollBar::handle:vertical:pressed {
    background-color: rgb(185, 0, 92);
}

/* BTN TOP - SCROLLBAR */
QScrollBar::sub-line:vertical {
    border: none;
    background-color: rgb(59, 59, 90);
    height: 15px;
    border-top-left-radius: 7px;
    border-top-right-radius: 20px;
    subcontrol-position: top;
    subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical:hover { 
    background-color: rgb(255, 0, 127);
}
QScrollBar::sub-line:vertical:pressed {
    background-color: rgb(185, 0, 92);
}

/* BTN BOTTOM - SCROLLBAR */
QScrollBar::add-line:vertical {
    border: none;
    background-color: rgb(59, 59, 90);
    height: 15px;
    border-bottom-left-radius: 7px;
    border-bottom-right-radius: 7px;
    subcontrol-position: bottom;
    subcontrol-origin: margin;
}
QScrollBar::add-line:vertical:hover { 
    background-color: rgb(255, 0, 127);
}


Также на скрине я отметил цифрой "2" ещё один момент, который хочу убрать: тонкая полоска между бэкграундом скролбара и стрелками этого скролбара. Хотя я подозреваю, что это последствия той же проблемы.

Без идей, что я не так делаю, буду рад помощи!
  • Вопрос задан
  • 66 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@yoyot
Добавьте к стилям строчку:
QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background: none; }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы