On Wednesday September 10 2003 17:45, Sundance wrote: > I heard Jim Bublitz said:
> I assume that it is not expected to work outside a > KApplication, then? Maybe there should be a way to raise an > exception rather than crash when this is called outside a > KApplication...? You'd have to talk to KDE and TrollTech about that - that's built-in behaviour in the KDE/Qt C++ libs. Some things do throw an exception/error msgs, like trying to use widgets without a QApplication/KApplication instance exisiting (although the msg usually complains about a missing QPainter instance). I would imagine KTrader is looking for some other connection the KApplication establishes with KDE. > That was the behavior I expected anyway, so > when I tried the KTrader trick on its own I assumed that it > would either 1) work on its own, or 2) require some > QApplication-like class to have been instanciated, in which > case it would warn me. > Guess I was wrong about the 'warn me' part. Nah - you got a segfault. Just not a very delicate warning. :) > > There are a couple of programs in examples/ that use KTrader > > (pyParts.py, pyParts_1.py don't work too well at the moment > > though). If you run examples/mimetype.py, the OfferList tab > > results are from a KTrader call -- does that work? > It does. > I rewrote my little example above adding a KApplication > instanciation just before the call to KTrader.self().query, > and it works, whee! > Well, more precisely, it works if I copy the KCmdLineArgs.init > line from mimetype.py. If I call KApplication([], "SomeName") > it dies. Apparently KApplication REQUIRES a non-empty list as > its first argument, unlike QApplication (with which the [] > trick works). PyKDE-3.8 (rc releases are at http://www.sourceforge.net/projects/pykde) has a bunch of application templates you can use to get started. > Alright, so. Erm. :) I may be wrong about this as well, but I > still sort of think there are more elegant ways to let the > user know he's done something wrong than crash the full > interpreter. =) > Is there any way we can help make it so? Seems pretty difficult - my guess would be the most appropriate route would be a tutorial/better docs/more example programs - that's in the works, but takes a while to accomplish. The KDE libs classref docs are pretty good, even if C++ oriented. You find them at http://www.kde.org in the documentation section, along with a lot of tutorial stuff. Jim _______________________________________________ PyKDE mailing list [EMAIL PROTECTED] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
