Как смоделировать действие мыши с помощью Qt.SIGNAL? Мне нужно смоделировать mouseRelease без взаимодействия пользователя. Спасибо заранее!Имитация мышиного релиза Pyqt
4
A
ответ
3
Вот пример использования clicked
сигнала в QPushButton
:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from PyQt4 import QtGui, QtCore
class MyWindow(QtGui.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.pushButtonSimulate = QtGui.QPushButton(self)
self.pushButtonSimulate.setText("Simulate Mouse Release!")
self.pushButtonSimulate.clicked.connect(self.on_pushButtonSimulate_clicked)
self.layoutHorizontal = QtGui.QHBoxLayout(self)
self.layoutHorizontal.addWidget(self.pushButtonSimulate)
@QtCore.pyqtSlot()
def on_pushButtonSimulate_clicked(self):
mouseReleaseEvent = QtGui.QMouseEvent(
QtCore.QEvent.MouseButtonRelease,
self.cursor().pos(),
QtCore.Qt.LeftButton,
QtCore.Qt.LeftButton,
QtCore.Qt.NoModifier,
)
QtCore.QCoreApplication.postEvent(self, mouseReleaseEvent)
def mouseReleaseEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
print "Mouse Release"
super(MyWindow, self).mouseReleaseEvent(event)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
app.setApplicationName('MyWindow')
main = MyWindow()
main.show()
sys.exit(app.exec_())
1
Вы можете использовать:
from PyQt4.QtTest import QTest
#(...) Where you want to release
QTest.mouseRelease(widget_to_release, Qt.LeftButton)
Это выпустит мышь в центре виджета.
Есть также методы для mousePress()
, mouseClick()
и другие. Однако, если вы тестируете Drag & Drop on Windows, будьте осторожны, что эквивалент QTest.mousePress()
будет блокироваться, так как QDrag.exec_()
блоков.
Смежные вопросы
- 1. Имитация события щелчка мыши в PyQt
- 2. Скрыть URL мышиного overing ссылка
- 3. Использование мышиного прокрутки в GLUT
- 4. Изменение поведения мышиного колеса Combobox
- 5. релиза CFString
- 6. Проверить время после мышиного мыши до мыши.
- 7. Событие мышиного колеса над элементом Рафаэля
- 8. предотвратить дампикер от запуска родительского мышиного плеча
- 9. Угловая директива для моделирования мышиного центра?
- 10. Имитация оценщика
- 11. Имитация дождя
- 12. Имитация списка
- 13. Имитация BlueScreen
- 14. Создание релиза в Xcode
- 15. Событие релиза мыши D3
- 16. релиза и сохранить
- 17. Свойства релиза Maven
- 18. Задержка релиза приложения iOS
- 19. Проверка релиза Mutex
- 20. релиза файл Assembly.LoadFrom обрабатывать
- 21. Как обновить ветвь релиза?
- 22. Ошибка создания релиза APK
- 23. Проверка конфигурации релиза Xcode
- 24. Обновления релиза iOS
- 25. релиза всех текстуры память
- 26. сбой на выпуск релиза
- 27. Проверка версий релиза
- 28. Создание ключа релиза Android
- 29. Имитация нескольких пуассоновских процессов
- 30. Имитация клавиатуры tap
Только то, что я искал! Отличный ответ! – karensantana
Я пробовал точно такой же код, но он ничего не делает. пресс = QMouseEvent (QEvent.MouseButtonPress, пос, Qt.LeftButton, Qt.LeftButton, Qt.NoModifier) печати ("Testing2") выпуск = QMouseEvent (QEvent.MouseButtonRelease, пос, Qt.LeftButton, Qt.LeftButton , Qt.NoModifier) print ("Testing3") QApplication.postEvent (self.view, press) time.sleep (1) QApplication.postEvent (self.view, release) – d34th4ck3r