On Friday 07 September 2007 08:00, Jean-Michel Vourgère wrote: > Hi. > > 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. Jim
testKHTML2.py
Description: application/python
_______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
