def test_rectangle_drawing(self): points = [[1, 1], [10, 10], [15, 15]] for i in points: for j in points: if (i[0] != j[0] or i[1] != j[1]): p1 = QPoint() p1.setX(i[0]) p1.setY(i[1]) p2 = QPoint() p2.setX(j[0]) p2.setY(j[1]) # print('point', i, j, p1.x(), p1.y(), p2.x(), p2.y()) testCanv = Canvas() testCanv.initialize() p = QPainter(testCanv.pixmap()) p.setPen( QPen(self.canvas.primary_color, self.canvas.config['size'], Qt.SolidLine, Qt.SquareCap, Qt.MiterJoin)) p.drawRect(QRect(p1, p2)) p.end() self.canvas.reset() self.canvas.set_mode('rect') self.canvas.config['fill'] = False QTest.mousePress(self.canvas, Qt.LeftButton, Qt.NoModifier, p1) QTest.mouseMove(self.canvas, p2, 100) QTest.mouseRelease(self.canvas, Qt.LeftButton, Qt.NoModifier, p2, 100) print(img_not_fill(self.canvas.pixmap().toImage())) # print(img_not_fill(testCanv.pixmap().toImage())) self.assertEqual( True, img_equals(self.canvas.pixmap().toImage(), testCanv.pixmap().toImage()))
def on_move_complete(self, scene, x, y): """ Simulate click on the button """ QTest.mouseMove(scene.parent, QPoint(x, y)) QTest.mousePress(scene.parent, Qt.LeftButton, delay=1000) self.pressed.emit() self.update() QTest.mouseRelease(scene.parent, Qt.LeftButton, delay=2000) self.update()
def drag_slider(self, slider): ''' Click *slider*, drag from one side to the other, release mouse button repeat to restore inital state''' position = self.get_slider_position(slider) QTest.mouseMove(slider, pos=position.topLeft()) QTest.mousePress(slider, Qt.LeftButton) QTest.mouseMove(slider, pos=position.bottomRight()) QTest.mouseRelease(slider, Qt.LeftButton) QTest.mousePress(slider, Qt.LeftButton) QTest.mouseMove(slider, pos=position.topLeft()) QTest.mouseRelease(slider, Qt.LeftButton)
def test_droplist_completer_mousepick(self): leftButton = QtCore.Qt.LeftButton w = CompletionWidget(self.console) w.show_items(self.text_edit.textCursor(), ["item1", "item2", "item3"]) QTest.mouseClick(w.viewport(), leftButton, pos=QtCore.QPoint(19, 8)) QTest.mouseRelease(w.viewport(), leftButton, pos=QtCore.QPoint(19, 8)) QTest.mouseDClick(w.viewport(), leftButton, pos=QtCore.QPoint(19, 8)) self.assertEqual(self.text_edit.toPlainText(), "item1") self.assertFalse(w.isVisible())
def add_one_pick(self): '''Add a single pick to pile_viewer''' pv = self.pile_viewer QTest.mouseDClick(pv.viewer, Qt.LeftButton) position_tl = pv.pos() geom = pv.frameGeometry() QTest.mouseMove(pv.viewer, pos=position_tl) QTest.mouseMove(pv.viewer, pos=(qc.QPoint( position_tl.x()+geom.x()/2., position_tl.y()+geom.y()/2.))) # This should be done also by mouseDClick(). QTest.mouseRelease(pv.viewer, Qt.LeftButton) QTest.mouseClick(pv.viewer, Qt.LeftButton)
def mouseDrag(widget, press_on, release_on, button, modifier=None, delay=-1): """ Convenience helper for dragging a QWidget Makes a drag with the mouse. Args: widget (QWidget): press_on (QPoint): this is the position where the mouse is pressed. release_on (QPoint): this is the position where the mouse is released. """ if modifier is None: modifier = Qt.KeyboardModifiers() QTest.mousePress(widget, button, modifier, pos=press_on, delay=delay) QTest.mouseMove(widget, pos=release_on, delay=delay) QTest.mouseRelease(widget, button, modifier, pos=release_on, delay=delay)
def test_downPB(self): device = DeviceConnectorMock("Device#1", "Owner", 83) self.widget.attachConnector(device) positionStart = device.currentPosition() downPB = self.widget.ui.downPB QTest.mousePress(downPB, Qt.LeftButton) self.assertEquals(0, device.upCounter) self.assertEquals(1, device.downCounter) self.assertEquals(0, device.stopCounter) QTest.qSleep(1000) QTest.mouseRelease(downPB, Qt.LeftButton) self.assertEquals(0, device.upCounter) self.assertEquals(1, device.downCounter) self.assertEquals(1, device.stopCounter) positionEnd = device.currentPosition() self.assertLess(positionEnd, positionStart)
def mouse_drag(widget, start_pos=None, stop_pos=None, button=Qt.LeftButton): """Simulates dragging the mouse from a start position to a stop position :param widget: widget to drag mouse on :type widget: QtWidgets.QWidget :param start_pos: start mouse position :type start_pos: QtCore.QPoint :param stop_pos: stop mouse position :type stop_pos: QtCore.QPoint :param button: button to press while dragging :type button: Qt.MouseButtons """ if start_pos is None: start_pos = widget.rect().topLeft() if stop_pos is None: stop_pos = widget.rect().bottomRight() QTest.mousePress(widget, button, pos=start_pos) event = QMouseEvent(QEvent.MouseMove, stop_pos, button, button, Qt.NoModifier) APP.sendEvent(widget, event) QTest.mouseRelease(widget, button, pos=stop_pos)