[PyKDE] PyKDE & khtml DOMString

Jim Bublitz jbublitz at nwinternet.com
Fri Mar 17 20:08:18 GMT 2006


On Friday 17 March 2006 10:21, Ismail Donmez wrote:
> Hi all,
>
> I am using khtml in my PyKDE app ( which rocks btw ) , two minor problems
> appear, I have to use stuff like
>
> document = self.htmlPart.document()
> document.getElementsByTagName(DOM.DOMString("input"))
>
> would it be possible to write it like
> document = self.htmlPart.document()
> document.getElementsByTagName("input")
>
> which means a auto-conversion between DOMString & str.

I'm not clear if you want auto-conversion for a single method, or PyKDE-wide 
auto-conversion. In either case, I think I'd probably give the same answer. 
There are probably several hundred khtml methods that take DOM.DOMString as 
an argument. Conversion could be done with handwritten code, but that's a 
considerable amount to generate and maintain. There might be some other way 
to do it that's workable - I'd have to give that some thought.

In the meantime, the easiest way to handle it would be to subclass (in Python) 
the class that contains the method(s). For example:

class PyHtmlDocument (DOM.HTMLDocument):
	def getElementsByTagName (self, pyString):
		return DOM.HTMLDocument.getElementsByTagName (self, 
                               DOM.DOMString (pyString))

> Also is there a way to handle C++ exceptions in Python ? Because per DOM
>  spec khtml throws exceptions in DOM code which results in a crash
>  because I can't handle it as a Python exception.

In configure.py, generate_code (), add:

if mname == "khtml":
	argv.append("-e")

That should generate Python exceptions for any C++ exceptions anywhere in 
khtml. I'll modify configure.py to do that for the next release.

Jim




More information about the PyQt mailing list