Python – PyQT4 ¿Cómo detectar la posición de clic del mouse en cualquier lugar de la ventana?

Tengo una ventana de resolución de 1024×768, cuando hay un clic o un mouse sobre, quiero encontrar los valores x, y. ¿Cómo puedo hacer eso?

import sys from PyQt4 import QtGui, QtCore class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): qbtn = QtGui.QPushButton('Quit', self) #qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit) qbtn.clicked.connect(self.test) qbtn.resize(qbtn.sizeHint()) qbtn.move(50, 50) self.setGeometry(0, 0, 1024, 768) self.setWindowTitle('Quit button') self.setWindowFlags(self.windowFlags() | QtCore.Qt.FramelessWindowHint) self.show() def test(self): print "show the position of mouse cursor in screen resolution: x is ?? , y is ??" def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) if __name__ == '__main__': main() 

 import sys from PyQt4 import QtGui, QtCore class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def mousePressEvent(self, QMouseEvent): print QMouseEvent.pos() def mouseReleaseEvent(self, QMouseEvent): cursor =QtGui.QCursor() print cursor.pos() def initUI(self): qbtn = QtGui.QPushButton('Quit', self) qbtn.resize(qbtn.sizeHint()) qbtn.move(50, 50) self.setGeometry(0, 0, 1024, 768) self.setWindowTitle('Quit button') self.setWindowFlags(self.windowFlags() | QtCore.Qt.FramelessWindowHint) self.show() def test(self): print "test" def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) if __name__ == '__main__': main() 

Salida:

 PyQt4.QtCore.QPoint(242, 285) PyQt4.QtCore.QPoint(1741, 423) PyQt4.QtCore.QPoint(439, 372) 

La otra forma de obtener coordenadas (x, y):

 def mouseReleaseEvent(self, QMouseEvent): print('(', QMouseEvent.x(), ', ', QMouseEvent.y(), ')')