[PyKDE] Using KParts
Jim Bublitz
jbublitz at nwinternet.com
Mon Dec 13 08:10:20 GMT 2004
On Sunday 12 December 2004 17:38, Troy Melhase wrote:
> On Thursday 09 December 2004 10:26 pm, Patrick Stinson wrote:
> > kparts.createReadWritePart('kwritepart') # can't remember the exact
> > syntax
>
> This has worked for me in the past:
>
> from kio import KTrader
> from kparts import createReadOnlyPart, createReadWritePart
>
> def buildPart(parent, query, contraint, writable=False):
> """ builds the first available offered part on the parent
>
> """
> offers = KTrader.self().query(query, contraint)
> try:
> ptr = offers[0]
> except (IndexError, TypeError, ), te:
> return
> if writable:
> builder = createReadWritePart
> else:
> builder = createReadOnlyPart
> return builder(ptr.library(), parent, ptr.name())
>
> Then later, it's used like so:
>
> query = "Type == 'Service' and Name == 'Embedded Advanced Text Editor'"
> part = buildPart(self, 'application/x-python', query, True)
> if not part:
> print 'Ack! No part available for displaying python source'
>
> Hope this helps.
That looks correct to me. The only other thing I'd add is that if the
application is using a window, it should subclass KParts.MainWindow as the
main window, and not KMainWindow (which is a base class to
KParts.MainWindow).
I'll try to verify all of this in the next day or two, and add an example to
PyKDE. The original example broke going from KDE2->3 and I never replaced it.
Jim
More information about the PyQt
mailing list