[PyQt] a CustomEvent in KTMLPart crashes eventFilter
jbublitz at nwinternet.com
Fri Sep 7 20:45:20 BST 2007
On Friday 07 September 2007 08:00, Jean-Michel Vourgère wrote:
> I've been digging into a bug for a few days, now. After upgrading from
> Debian Sarge to Etch, our python application crashes (SEGV) if we install
> an event filter. Attached is a minimal example of the problem.
> The application doesn't crash when commenting out the installEventFilter,
> despite the fact it does nothing.
> Does any one has a cue?
> I suspect a problem in KHTML sending a signal to a deleted object.
> It could also be that the "void *data" of the QCustomEvent causes problems
> in sip that can't possibly convert its type... Or maybe I'm just doing
> something wrong that will look obvious to an expert ^^
I have no idea what's going on in KHTMLPart that causes the crash - it's not
an easy object to troubleshoot, and does some peculiar things in my
experience with it.
However, it looks like what you want to do is press a key and grab a screen
shot (via some other code, I assume).
The attached should let you do that, and has the added benefit of not
crashing. It actually catches the event twice - probably once from
self.htmlpart.view (), which is a KHTMLView and QScrollView subclass. You can
filter that, or else try attaching an event filter to KHTMLView, but I think
this is easier and more likely to work.
self.htmlpart.view () gives you access to the actual view that paints on the
screen. KParts.BrowserExtension provides other stuff - cut, paste, and link
clicking support (self.htmlpart.browserExtension () returns the part's
extension in the example). It may also be necessary to call
self.htmlpart.partManager () - it has the side effect of creating a part
manager if none exists. If you create actions, do it before instantiating
KHTMLPart (but don't ask me why).
Let me know if this does what you need, or what further problems it causes.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1025 bytes
Desc: not available
Url : http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20070907/e8c3e28e/testKHTML2-0001.bin
More information about the PyQt