Okay this is probably more of me getting bit by not using the correct
signatures, but the behavior has changed from my 4.4 installation to my
4.5 (PyQt-x11-gpl-4.5-snapshot-20090304, Ill probably recompile it
today)
when I would pass a mouse event as an emitted signal this worked,
mywidget.emit(QtCore.SIGNAL("mousePressed(QMouseEvent)"),mouse_event)
in 4.5 that doesn't pass the MouseEvent it sorta passes any event, but
this works
mywidget.emit(QtCore.SIGNAL("mousePressed(&QMouseEvent)"),mouse_event)
and of course the connection on other end has the correct signature,
here is a sample too. The new style works great though especially since
I don't need to know about the '&' bit.
mbs
from PyQt4 import QtGui,QtCore
import sys
class Window(QtGui.QMainWindow):
def __init__(self,fname,parent=None):
QtGui.QMainWindow.__init__(self,parent)
self.setWindowTitle("working")
self.ab = Checker(fname,self)
self.setCentralWidget(self.ab)
#works really nice
#self.ab.trigger.connect(self.echoE)
self.connect(self.ab,QtCore.SIGNAL("mousePressed(&QMouseEvent)"),self.echoE)
self.connect(self.ab,QtCore.SIGNAL("mousePressed(QMouseEvent)"),self.echoF)
def echoE(self,e):
#shows the correct way works
print "ampersand: ",e.x(),e.y()
def echoF(self,e):
#shows the previous way doesn't work
print "no ampersand: ",e.x(),e.y()
class Checker(QtGui.QLabel):
trigger = QtCore.pyqtSignal(QtGui.QMouseEvent)
def __init__(self,fname,parent=None):
QtGui.QLabel.__init__(self,parent)
pm = QtGui.QPixmap(fname)
self.setPixmap(pm)
def mousePressEvent(self,e):
print "original: ",e.x(),e.y()
self.trigger.emit(e)
#Works
self.emit(QtCore.SIGNAL("mousePressed(&QMouseEvent)"),e)
#doesn't work but did in 4.4 (maybe 4.3)
self.emit(QtCore.SIGNAL("mousePressed(QMouseEvent)"),e)
if __name__=="__main__":
app = QtGui.QApplication(sys.argv)
try:
qb = Window(sys.argv[1])
except IndexError:
print "usage: 'mouse_test.py image_file'"
sys.exit(1)
qb.show()
sys.exit(app.exec_())
_______________________________________________
PyQt mailing list [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt