2024-05-23 14:59:35 发布
网友
如何使用模拟鼠标释放操作Qt信号? 我需要模拟一个没有用户交互的mouseRelease。 提前谢谢!在
下面是一个使用^{}的^{}信号的示例:
#!/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_())
您可以使用:
from PyQt4.QtTest import QTest #(...) Where you want to release QTest.mouseRelease(widget_to_release, Qt.LeftButton)
这将释放小部件中心的鼠标。在
还有mousePress()、mouseClick()等的方法。但是,如果您在Windows上测试拖放,请注意等效的QTest.mousePress()将阻塞,因为QDrag.exec_()会阻塞。在
mousePress()
mouseClick()
QTest.mousePress()
QDrag.exec_()
下面是一个使用^{} 的^{} 信号的示例:
您可以使用:
这将释放小部件中心的鼠标。在
还有
mousePress()
、mouseClick()
等的方法。但是,如果您在Windows上测试拖放,请注意等效的QTest.mousePress()
将阻塞,因为QDrag.exec_()
会阻塞。在相关问题 更多 >
编程相关推荐