QT баги после стилизации QSlider
После того как накинул стили для QSlider нельзя взять ползунок и перетащить на необходимый цвет, приходится нажимать на линию где он может проходить и только в таком случае будет происходить перемещение
Применённые стили:
QSlider::groove:horizontal {
height: 8px; /* по умолчанию бороздка расширяется до размеров ползунка. задав высоту она принимает фиксированный размер */
background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 0, 0, 255), stop:0.166 rgba(255, 255, 0, 255), stop:0.333 rgba(0, 255, 0, 255), stop:0.5 rgba(0, 255, 255, 255), stop:0.666 rgba(0, 0, 255, 255), stop:0.833 rgba(255, 0, 255, 255), stop:1 rgba(255, 0, 0, 255));
}
QSlider::handle:horizontal {
background: white;
border: 1px #5c5c5c;
width: 12px;
margin: 14px 0; /* рукоятка располагается по умолчанию в прямоугольнике содержимого бороздки. Расширяется наружу от бороздки */
border-radius: 3px;
}
Ответы (1 шт):
Автор решения: Sergey Tatarincev
→ Ссылка
Давайте посмотрим на box model
Нас интересует magin. Как раз задав его в 14px, вы и убрали возможность взаимодействовать с ползунком. Но можно сделать так:
QSlider::handle:horizontal {
background: white;
border: 1px #5c5c5c;
width: 12px;
margin: -12px 0; /* <--- */
border-radius: 3px;
}
См. к примеру статью про отрицательные значения margin
