sir*_*ria 5 python qt pyqt qt5 pyqt5
我想识别QWidgetPyQt5 中鼠标单击 a 的情况。在文档中,有mouseDoubleClickEvent或 ,mousePressEvent但没有mouseClickEvent单击的功能。我如何获得该功能?谢谢
顺便说一句,我注意到 PyQtGraph 确实有一个mouseClickEvent函数。
Qt 本身不提供“单击”事件,您必须基于mousePressEvent和 来实现这样的功能mouseReleaseEvent,通过检查释放是否发生在小部件的几何形状内(并且可能按下了正确的鼠标按钮)并发布)。
class ClickWidget(QWidget):
pressPos = None
clicked = pyqtSignal()
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
self.pressPos = event.pos()
def mouseReleaseEvent(self, event):
# ensure that the left button was pressed *and* released within the
# geometry of the widget; if so, emit the signal;
if (self.pressPos is not None and
event.button() == Qt.LeftButton and
event.pos() in self.rect()):
self.clicked.emit()
self.pressPos = None
Run Code Online (Sandbox Code Playgroud)