Skip to content

Commit e045486

Browse files
authored
Fix inverted active line of vertical QSlider (#212)
* Add stylesheet rules for QSlider each orientation * Add vertical QSlider to widget gallery * Add comment to stylesheet
1 parent 1097123 commit e045486

File tree

3 files changed

+29
-14
lines changed

3 files changed

+29
-14
lines changed

qdarktheme/_resources/_template_stylesheet.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -506,14 +506,18 @@
506506
QSlider::groove:vertical {
507507
width: 4px;
508508
}
509-
QSlider::sub-page, QSlider::handle {
509+
QSlider::sub-page:horizontal,
510+
QSlider::add-page:vertical,
511+
QSlider::handle {
510512
background: {{ primary|color }};
511513
}
512-
QSlider::sub-page:disabled,
514+
QSlider::sub-page:horizontal:disabled,
515+
QSlider::add-page:vertical:disabled,
513516
QSlider::handle:disabled {
514517
background: {{ foreground|color(state="slider.disabledBackground") }};
515518
}
516-
QSlider::add-page {
519+
QSlider::add-page:horizontal,
520+
QSlider::sub-page:vertical {
517521
background: {{ foreground|color(state="sliderTrack.inactiveBackground") }};
518522
}
519523
QSlider::handle:hover,

qdarktheme/widget_gallery/_ui/widgets_ui.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -271,26 +271,31 @@ def __init__(self) -> None:
271271
super().__init__("QToolBox")
272272
# Widgets
273273
toolbox = QToolBox()
274-
slider = QSlider(Qt.Orientation.Horizontal)
274+
h_slider, v_slider = QSlider(Qt.Orientation.Horizontal), QSlider(Qt.Orientation.Vertical)
275275
dial_ticks = QDial()
276276
progressbar = QProgressBar()
277277
lcd_number = QLCDNumber()
278278

279279
# Setup widgets
280280
self.setCheckable(True)
281-
toolbox.addItem(slider, "Slider")
282-
toolbox.addItem(dial_ticks, "Dial")
283-
toolbox.addItem(progressbar, "Progress Bar")
284-
toolbox.addItem(lcd_number, "LCD Number")
285-
slider.setValue(50)
281+
# If the slider value is 50, it is not clear which orientation is active.
282+
h_slider.setValue(30)
283+
v_slider.setValue(30)
286284
dial_ticks.setNotchesVisible(True)
287285
progressbar.setValue(50)
288286
lcd_number.setSegmentStyle(QLCDNumber.SegmentStyle.Flat)
289287
lcd_number.display(123)
290288

291289
# Layout
292-
v_layout = QVBoxLayout(self)
293-
v_layout.addWidget(toolbox)
290+
slider_component = QWidget()
291+
v_layout = QVBoxLayout(slider_component)
292+
v_layout.addWidget(h_slider)
293+
v_layout.addWidget(v_slider)
294+
toolbox.addItem(slider_component, "Slider")
295+
toolbox.addItem(dial_ticks, "Dial")
296+
toolbox.addItem(progressbar, "Progress Bar")
297+
toolbox.addItem(lcd_number, "LCD Number")
298+
QVBoxLayout(self).addWidget(toolbox)
294299

295300

296301
class WidgetsUI:

style/base.qss

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -631,14 +631,20 @@ QSlider::groove:horizontal {
631631
QSlider::groove:vertical {
632632
width: 4px;
633633
}
634-
QSlider::sub-page, QSlider::handle {
634+
/* Horizontal slider active line is `::sub-page`. */
635+
/* Vertical slider active line is `::add-page`. */
636+
QSlider::sub-page:horizontal,
637+
QSlider::add-page:vertical,
638+
QSlider::handle {
635639
background: {{ primary|color }};
636640
}
637-
QSlider::sub-page:disabled,
641+
QSlider::sub-page:horizontal:disabled,
642+
QSlider::add-page:vertical:disabled,
638643
QSlider::handle:disabled {
639644
background: {{ foreground|color(state="slider.disabledBackground") }};
640645
}
641-
QSlider::add-page {
646+
QSlider::add-page:horizontal,
647+
QSlider::sub-page:vertical {
642648
background: {{ foreground|color(state="sliderTrack.inactiveBackground") }};
643649
}
644650
QSlider::handle:hover,

0 commit comments

Comments
 (0)