def scrollAreaInteract(cls, area): # print "scrollAreaInteract", area from PyQt4.QtTest import QTest geom = area.geometry() randpos = lambda: geom.topLeft() + QtCore.QPoint(geom.width() * random.random(), geom.height() * random.random()) QTest.mouseMove(area, randpos(), 2) QTest.mouseClick(area, Qt.LeftButton, pos=randpos(), delay=2) QTest.mouseDClick(area, Qt.LeftButton, pos=randpos(), delay=2) QTest.mousePress(area, Qt.LeftButton, pos=randpos(), delay=2) QTest.mouseRelease(area, Qt.LeftButton, pos=randpos(), delay=2)
def mouse_move(target): """moves the mouse cursor to the coordinates of 'target' by a continous movement. Coordinates are relative to the main window""" pos = win.mapFromGlobal(QCursor.pos()) start = [pos.x(), pos.y()] n = max(int(time * 25), 5) for i in range(0, n + 1): pos = [start[j] + (target[j] - start[j]) / n * i for j in range(2)] widget = app._qapp.widgetAt(QCursor.pos()) or win QTest.mouseMove(widget, win.mapToGlobal(widget.mapFromGlobal(QPoint(*pos))), time)
def click(self, selector): postions = self.get_postions_from_selector(selector) if postions: postion=postions[0] self.set_page_center(postion) pos = QPoint( postion[0]-self.main_frame.scrollPosition().x(), postion[1]-self.main_frame.scrollPosition().y(), ) QTest.mouseMove(self.webview, pos=pos, delay=100) QTest.mouseClick(self.webview, Qt.LeftButton, pos=pos, delay=100) else: logger.warning("Can't locate selector " + selector)
def test_custom_data_drop(self): self.widget = DragAndDropWidget() index = self.widget.drag.model.index(1, 0) pos = self.widget.drag.visualRect(index).center() pos = self.widget.drag.mapFromGlobal(pos) self.widget.drag.setCurrentIndex(index) QTest.mousePress(self.widget.drag, QtCore.Qt.LeftButton, pos=pos, delay=1) QTest.mouseMove(self.widget.drop) QTest.mouseRelease(self.widget.drop, QtCore.Qt.LeftButton) self.pause(2)
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 testInfoIcon(self): iw = QWidget() layout = QHBoxLayout() layout.setMargin(100) ii = InfoIcon('hover popup text', iw) layout.addWidget(ii) iw.setLayout(layout) iw.setWindowModality(Qt.ApplicationModal) iw.show() QTest.mouseMove(iw, iw.pos()) self.assertEqual(QToolTip.text(), 'Name is not unique') QTest.mouseMove(ii) # why is this necessary? QTest.qWait(250) QTest.mouseMove(ii) QTest.qWait(2000) self.assertEqual(QToolTip.text(), 'hover popup text')
def testInfoIcon(self): iw = QWidget() layout = QHBoxLayout() layout.setMargin(100) ii = InfoIcon('hover popup text', iw) layout.addWidget(ii) iw.setLayout(layout) iw.setWindowModality(Qt.ApplicationModal) iw.show() QTest.mouseMove(iw, iw.pos()) self.assertEqual(QToolTip.text(), '') QTest.mouseMove(ii) # why is this necessary? QTest.qWait(250) QTest.mouseMove(ii) QTest.qWait(2000) self.assertEqual(QToolTip.text(), 'hover popup text')
def _move_to_position(self, qpoint): QTest.mouseMove(self.view, pos=qpoint) return qpoint
if change == QtGui.QGraphicsItem.ItemPositionHasChanged: for x in self.inboundTransitions + self.outboundTransitions: x.updatePosition() return super(FsmState, self).itemChange(change,value) # def mouseDoubleClickEvent(self, event): # pass if __name__ == '__main__': import sys from MainWindow import MainWindow from PyQt4.QtTest import QTest from PyQt4.QtCore import Qt app = QtGui.QApplication(sys.argv) mainWindow = MainWindow() mainWindow.setGeometry(100, 100, 800, 500) mainWindow.show() QTest.mouseClick(mainWindow.addStateButton, Qt.LeftButton) QTest.mouseClick(mainWindow.view.viewport(), Qt.LeftButton, Qt.NoModifier, QtCore.QPoint(400,200)) QTest.mouseClick(mainWindow.view.viewport(), Qt.LeftButton, Qt.NoModifier, QtCore.QPoint(100,250)) QTest.mouseClick(mainWindow.addTransitionButton, Qt.LeftButton) QTest.mousePress(mainWindow.view.viewport(), Qt.LeftButton, Qt.NoModifier, QtCore.QPoint(400,200)) QTest.mouseMove(mainWindow.view.viewport(), QtCore.QPoint(100,250)) QTest.mouseRelease(mainWindow.view.viewport(), Qt.LeftButton, Qt.NoModifier, QtCore.QPoint(100,250)) sys.exit(app.exec_())
if isinstance(item, type): return True return False if __name__ == '__main__': import sys from MainWindow import MainWindow from PyQt4.QtTest import QTest from PyQt4.QtCore import Qt app = QtGui.QApplication(sys.argv) mainWindow = MainWindow() mainWindow.setGeometry(100, 100, 800, 500) mainWindow.show() QTest.mouseClick(mainWindow.addStateButton, Qt.LeftButton) QTest.mouseClick(mainWindow.view.viewport(), Qt.LeftButton, Qt.NoModifier, QtCore.QPoint(400, 200)) QTest.mouseClick(mainWindow.view.viewport(), Qt.LeftButton, Qt.NoModifier, QtCore.QPoint(100, 250)) QTest.mouseClick(mainWindow.linePointerButton, Qt.LeftButton) QTest.mousePress(mainWindow.view.viewport(), Qt.LeftButton, Qt.NoModifier, QtCore.QPoint(400, 200)) QTest.mouseMove(mainWindow.view.viewport(), QtCore.QPoint(100, 250)) QTest.mouseRelease(mainWindow.view.viewport(), Qt.LeftButton, Qt.NoModifier, QtCore.QPoint(100, 250)) sys.exit(app.exec_())
def _move_to_position(self, qpoint): QTest.mouseMove(self.webview, pos=qpoint) return qpoint
def scrollAreaInteract(cls, area): # print "scrollAreaInteract", area from PyQt4.QtTest import QTest QTest.mouseMove(area) QTest.mouseClick(area, Qt.LeftButton)
def _drawRandomStroke(self): numpoints = random.randint(1,20) QTest.mousePress(self.area,QtCore.Qt.LeftButton,pos=self._getPoint(),delay=0) for i in range(numpoints): QTest.mouseMove(self.area,self._getPoint(),delay=10) QTest.mouseRelease(self.area,QtCore.Qt.LeftButton,pos=self._getPoint(),delay=10)