以下示例显示了如何在中将可调用的任意python连接到鼠标运动事件GraphicsWindow。对于按键事件,您将如何做?
from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg
app = pg.mkQApp()
win = pg.GraphicsWindow()
pl = win.addPlot()
pl.plot([x*x for x in range(-10,11)])
def mouseMoved(evt):
print("Mouse moved event: {}".format(evt))
pl.scene().sigMouseMoved.connect(mouseMoved)
def keyPressed(evt):
print("Key pressed")
# The scene doesn't have an equivalent signal for key presses
# pl.scene().sigKeyPressed.connect(keyPress)
app.exec_()
Run Code Online (Sandbox Code Playgroud)
即使问了这个问题已经有一段时间了,但我仍然希望我的回答会有所帮助。
解决方案是从pyqtgraph.GraphicsWindow派生一个类,然后定义一个按键信号。
from pyqtgraph.Qt import QtCore
import pyqtgraph as pg
class KeyPressWindow(pg.GraphicsWindow):
sigKeyPress = QtCore.pyqtSignal(object)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def keyPressEvent(self, ev):
self.scene().keyPressEvent(ev)
self.sigKeyPress.emit(ev)
def keyPressed(evt):
print("Key pressed")
app = pg.mkQApp()
win = KeyPressWindow()
win.sigKeyPress.connect(keyPressed)
pl = win.addPlot()
pl.plot([x*x for x in range(-10,11)])
app.exec_()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1100 次 |
| 最近记录: |