Exemple #1
0
def test_change_floatslider_range(gslider: QRangeSlider, qtbot):
    with qtbot.waitSignals([gslider.rangeChanged, gslider.valueChanged]):
        gslider.setMinimum(30)

    assert gslider.value()[0] == 30 == gslider.minimum()
    assert gslider.maximum() == 99

    with qtbot.waitSignal(gslider.rangeChanged):
        gslider.setMaximum(70)
    assert gslider.value()[0] == 30 == gslider.minimum()
    assert gslider.value()[1] == 70 == gslider.maximum()

    with qtbot.waitSignals([gslider.rangeChanged, gslider.valueChanged]):
        gslider.setRange(40, 60)
    assert gslider.value()[0] == 40 == gslider.minimum()
    assert gslider.maximum() == 60

    with qtbot.waitSignal(gslider.valueChanged):
        gslider.setValue([40, 50])
    assert gslider.value()[0] == 40 == gslider.minimum()
    assert gslider.value()[1] == 50

    with qtbot.waitSignals([gslider.rangeChanged, gslider.valueChanged]):
        gslider.setMaximum(45)
    assert gslider.value()[0] == 40 == gslider.minimum()
    assert gslider.value()[1] == 45 == gslider.maximum()
Exemple #2
0
def test_range(qtbot, orientation):
    rs = QRangeSlider(getattr(Qt, orientation))
    qtbot.addWidget(rs)
    rs.setValue([10, 20])
    assert rs.value() == (10, 20)
    rs.setRange(15, 20)
    assert rs.value() == (15, 20)
    assert rs.minimum() == 15
    assert rs.maximum() == 20
Exemple #3
0
def test_float_values(gslider: QRangeSlider, qtbot):
    with qtbot.waitSignal(gslider.rangeChanged):
        gslider.setRange(0.1, 0.9)
    assert gslider.minimum() == 0.1
    assert gslider.maximum() == 0.9

    with qtbot.waitSignal(gslider.valueChanged):
        gslider.setValue([0.4, 0.6])
    assert gslider.value() == (0.4, 0.6)

    with qtbot.waitSignal(gslider.valueChanged):
        gslider.setValue([0, 1.9])
    assert gslider.value()[0] == 0.1 == gslider.minimum()
    assert gslider.value()[1] == 0.9 == gslider.maximum()
Exemple #4
0
def test_slider_extremes(gslider: QRangeSlider, mag, qtbot):
    _mag = 10**mag
    with qtbot.waitSignal(gslider.rangeChanged):
        gslider.setRange(-_mag, _mag)
    for i in _linspace(-_mag, _mag, 10):
        gslider.setValue((i, _mag))
        assert math.isclose(gslider.value()[0], i, rel_tol=1e-8)
        gslider.initStyleOption(QStyleOptionSlider())
Exemple #5
0
def test_drag_handles(qtbot):
    rs = QRangeSlider(Qt.Horizontal)
    qtbot.addWidget(rs)
    rs.setRange(0, 99)
    rs.setValue((20, 80))
    rs.setMouseTracking(True)
    rs.show()

    # press the left handle
    pos = rs._handleRect(0).center()
    with qtbot.waitSignal(rs.sliderPressed):
        qtbot.mousePress(rs, Qt.LeftButton, pos=pos)
    assert rs._pressedControl == SC_HANDLE
    assert rs._pressedIndex == 0

    # drag the left handle
    with qtbot.waitSignals([rs.sliderMoved] * 13):  # couple less signals
        for _ in range(15):
            pos.setX(pos.x() + 2)
            qtbot.mouseMove(rs, pos)

    with qtbot.waitSignal(rs.sliderReleased):
        qtbot.mouseRelease(rs, Qt.LeftButton)

    # check the values
    assert rs.value()[0] > 30
    assert rs._pressedControl == SC_NONE

    # press the right handle
    pos = rs._handleRect(1).center()
    with qtbot.waitSignal(rs.sliderPressed):
        qtbot.mousePress(rs, Qt.LeftButton, pos=pos)
    assert rs._pressedControl == SC_HANDLE
    assert rs._pressedIndex == 1

    # drag the right handle
    with qtbot.waitSignals([rs.sliderMoved] * 13):  # couple less signals
        for _ in range(15):
            pos.setX(pos.x() - 2)
            qtbot.mouseMove(rs, pos)
    with qtbot.waitSignal(rs.sliderReleased):
        qtbot.mouseRelease(rs, Qt.LeftButton)

    # check the values
    assert rs.value()[1] < 70
    assert rs._pressedControl == SC_NONE
Exemple #6
0
def test_drag_handles_beyond_edge(qtbot):
    rs = QRangeSlider(Qt.Horizontal)
    qtbot.addWidget(rs)
    rs.setRange(0, 99)
    rs.setValue((20, 80))
    rs.setMouseTracking(True)
    rs.show()

    # press the right handle
    pos = rs._handleRect(1).center()
    with qtbot.waitSignal(rs.sliderPressed):
        qtbot.mousePress(rs, Qt.LeftButton, pos=pos)
    assert rs._pressedControl == SC_HANDLE
    assert rs._pressedIndex == 1

    # drag the handle off the right edge and make sure the value gets to the max
    for _ in range(7):
        pos.setX(pos.x() + 10)
        qtbot.mouseMove(rs, pos)

    with qtbot.waitSignal(rs.sliderReleased):
        qtbot.mouseRelease(rs, Qt.LeftButton)

    assert rs.value()[1] == 99
Exemple #7
0
def test_value(qtbot, orientation):
    rs = QRangeSlider(getattr(Qt, orientation))
    qtbot.addWidget(rs)
    rs.setValue([10, 20])
    assert rs.value() == (10, 20)