On Monday September 29 2003 10:35, David Boddie wrote: > On Sun, 28 Sep 2003 10:17:04, "Ted Shab" wrote: > > Has anyone written a KPart from PyKDE? Is it > > straightforward? What are the major issues?
> The term KPart appears to cover a multitude of sins... I believe they're either KPart::ReadOnlyPart or KPart::ReadWritePart descendants. KParts are also different in KOffice than the rest of KDE if I recall correctly ... > I looked at the example at >http://developer.kde.org/documentation/tutorials/dot/writing-plugins.html > and have been trying to produce a Python equivalent. At the > moment I'm stuck where the author casts a QObject to a > KHTMLPart. I presume that there's a way of pursuading > PyKDE/sip to give me a Python KHTMLPart from the Python > QObject I receive but I'm beginning to get concerned that it's > only possible to do this in C++. Still, that hopefully > wouldn't be so hard to implement. If I read the tutorial correctly (I'm in kind of a rush at the moment), that's on the loading side - PyKDE can already load KParts. The C++ code is in part.sip, at the end. There is an example in the examples/ directory (pyParts.py) - the KTrader stuff is broken (doesn't come up with an image viewer to load), but the KParts stuff should still work. If you give it a KPart it can actually find and load, it should work. I think I'd get that working before trying to write the part to be loaded in Python. createReadOnlyPart/createReadWritePart (which are PyKDE specific global functions) do all of the work and return a correctly typed instance (since about PyKDE3.3 or maybe earlier). Those are written to do the steps the docs (and apparently the tutorial) require to load the part and cast it. The error I always make is forgetting to subclass the app's main window from KParts::MainWindow and making sure I call that in the __init__ method as well (instead of KMainWindow) -- hard to debug. There are three possible scenarios: Application KPart to load ======== ========== Python C++ should work C++ Python not yet - need .so Python Python not yet, but should work on the loading side as is In the last case, I'd still use the C++ mechanisms rather than some Python specific solution for situations where both are in Python. Jim _______________________________________________ PyKDE mailing list [EMAIL PROTECTED] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde