diff --git a/examples/screenshots.py b/examples/screenshots.py index c778719..2106c71 100644 --- a/examples/screenshots.py +++ b/examples/screenshots.py @@ -40,7 +40,8 @@ class DemoWidget(QtW.QWidget): range_hslider = QRangeSlider(QtCore.Qt.Horizontal) range_hslider.setValue((20, 80)) multi_range_hslider = QRangeSlider(QtCore.Qt.Horizontal) - multi_range_hslider.setValue((10, 40, 60, 90)) + multi_range_hslider.setValue((11, 33, 66, 88)) + multi_range_hslider.setTickPosition(QtW.QSlider.TicksAbove) styled_reg_hslider = QtW.QSlider(QtCore.Qt.Horizontal) styled_reg_hslider.setValue(50) @@ -100,6 +101,7 @@ class DemoWidget(QtW.QWidget): if __name__ == "__main__": + import sys from pathlib import Path dest = Path("screenshots") @@ -107,4 +109,8 @@ if __name__ == "__main__": app = QtW.QApplication([]) demo = DemoWidget() - demo.grab().save(str(dest / "demo_widget.png")) + + if "-x" in sys.argv: + app.exec_() + else: + demo.grab().save(str(dest / "demo_widget.png")) diff --git a/pyqrangeslider/_qrangeslider.py b/pyqrangeslider/_qrangeslider.py index 8c675b5..fc5a95a 100644 --- a/pyqrangeslider/_qrangeslider.py +++ b/pyqrangeslider/_qrangeslider.py @@ -273,13 +273,20 @@ class QRangeSlider(QSlider): r_bar = QRectF(r_groove) hdl_low, *_, hdl_high = self._handleRects(opt) + tp = self.tickPosition() + if tp & QSlider.TicksAbove: + displace = 4 + elif tp & QSlider.TicksBelow: + displace = -4 + else: + displace = 0 if opt.orientation == Qt.Horizontal: - r_bar.setTop(r_bar.center().y() - self._bar_height / 2) + r_bar.setTop(r_bar.center().y() - self._bar_height / 2 + displace) r_bar.setHeight(self._bar_height) r_bar.setLeft(hdl_low.center().x()) r_bar.setRight(hdl_high.center().x()) else: - r_bar.setLeft(r_bar.center().x() - self._bar_width / 2) + r_bar.setLeft(r_bar.center().x() - self._bar_width / 2 + displace) r_bar.setWidth(self._bar_width) r_bar.setBottom(hdl_low.center().y()) r_bar.setTop(hdl_high.center().y())