不幸的是,Pyqtgraph不能提供mouseRelease信号。在
因此,我想修改pyqtgraphsGraphicsScene
类中的mouseReleaseEvent
方法,以发出自定义信号。在
但是在下面的例子中,mouseReleaseEvent函数重写了QWidget
父对象中的等效方法,而不是pyqtgraph中的等效方法。我如何解决和改变这个方法,或者有更简单的方法来检测鼠标按钮的释放?在
import sys, pyqtgraph
from PyQt5 import QtGui, QtWidgets
class Window(QtWidgets.QDialog):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self)
layout = QtGui.QGridLayout(self)
view = pyqtgraph.GraphicsLayoutWidget()
layout.addWidget(view,0,0)
view.scene().sigMouseClicked.connect(self.OnClick)
def OnClick(self):
print("click") # This works inside the GraphicsLayoutWidget.
def mouseReleaseEvent(self,ev): # This does only work outside the pyqtgraph widget. It overrides the method in QWidget and not in pyqtgraph.GraphicsScene()
print("released ",ev)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
form = Window()
form.show()
sys.exit(app.exec_())
所以,我不知道这是否特别聪明,但是我想出了一个解决方案,它使用一个单独的计时器来跟踪
clickEvents
的存在。我希望这对有类似问题的人有所帮助。在相关问题 更多 >
编程相关推荐