offset for ticks

This commit is contained in:
Talley Lambert
2021-04-24 20:09:50 -04:00
parent 35e73799cb
commit d13648c6dc
2 changed files with 17 additions and 4 deletions

View File

@@ -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"))

View File

@@ -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())