[PyKDE] Cannot connect QSplitter signal
Phil Thompson
phil at riverbankcomputing.co.uk
Sat Jun 28 16:10:01 BST 2003
On Saturday 28 June 2003 6:05 am, Toru Furukawa wrote:
> I want to make a QSplitter widget detect double-click event, but I
> cannot figure out how.
>
> Platform: WindowsXP / Python2.2.2 / Qt2.3 / PyQt-3.6
>
> I tried this code;
> # sp.py
> from qt import *
> app = QApplication([])
> s = QSplitter()
> app.setMainWidget(s)
> s.show()
> app.connect(s, SIGNAL("childEvent(QChildEvent *e)"), PYSIGNAL("foo"))
> app.exec_loop()
>
> and I got the following error.
>
> Traceback (most recent call last):
> File "sp.py", line 6, in ?
> app.connect(s, SIGNAL("childEvent(QChildEvent *e)"), PYSIGNAL("foo"))
> RuntimeError: Signal has wrong argument types for slot
>
> Then, I tried "labmda e: 0" instead of PYSIGNAL("foo"), and I got the
> same error. What is wrong with my code?
childEvent() isn't a signal. Even if it was you shouldn't include the argument
name (ie. "e") in the signature string. Also, a QChildEvent deals with the
addition and removal of children in a QObject hierarchy.
The solution is to sub-class QSplitter and re-implement
mouseDoubleClickEvent().
Phil
More information about the PyQt
mailing list