Qt.SIGNALを使用してマウスリリースアクションをシミュレートするにはどうすればよいですか?ユーザーの操作なしでmouseReleaseをシミュレートする必要があります。前もって感謝します!
4571 次
2 に答える
4
:の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_())
于 2013-03-26T09:03:22.757 に答える
1
次を使用できます。
from PyQt4.QtTest import QTest
#(...) Where you want to release
QTest.mouseRelease(widget_to_release, Qt.LeftButton)
これにより、ウィジェットの中央でマウスが解放されます。
mousePress()
、、などのメソッドもありますmouseClick()
。ただし、Windowsでドラッグアンドドロップをテストしている場合は、ブロックされるため、同等のものQTest.mousePress()
がブロックされることに注意してQDrag.exec_()
ください。
于 2015-01-13T03:46:46.063 に答える