[PyKDE] Cannot connect QSplitter signal
Toru Furukawa
toru at oldriver.org
Tue Jul 1 20:17:00 BST 2003
Thanks for many advices.
On Sat, 28 Jun 2003 15:09:34 +0100
Phil Thompson <phil at riverbankcomputing.co.uk> wrote:
> > Platform: WindowsXP / Python2.2.2 / Qt2.3 / PyQt-3.6
...
> > s = QSplitter()
...
> > app.connect(s, SIGNAL("childEvent(QChildEvent *e)"), PYSIGNAL("foo"))
...
> 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().
That is it. The code below shows the way, I guess.
Now, I found MySplitter.event() is called when I resize, hide, maximize
or minimize widget, but MySplitter.event() and
MySplitter.mouseDoubleClicked() are not called. I am trying to hide a
child widget when double-clicking on a splitter (separator or whatever
you call the long lectangular stuff between child widgets), as in
Mozilla's side bar.
How can I detect mouse events on the splitter widget?
########
from qt import *
class MySplitter(QSplitter):
def event(self, e):
print "#", e
return QSplitter.event(self, e)
def mouseDoubleClickEvent(self, e):
print "*", e
QSplitter.mouseDoubleClickEvent(self, e)
app = QApplication([])
s = MySplitter()
app.setMainWidget(s)
QWidget(s)
QWidget(s)
s.show()
app.exec_loop()
########
Phil told me that the code works fine to him. I wonder it is platform
dependent.
--
Toru Furukawa <toru at oldriver.org>
More information about the PyQt
mailing list