> Phil Thompson <[EMAIL PROTECTED]> wrote: > >>>>>> sys.modules['qt'].__dict__['qApp'] = A(sys.argv) >>>>>> >>>>>> ...might do it. You have to make sure that this is done before the >>>>>> other >>>>>> modules that want to use it get imported. > >>> Well, I'm trying, but it's almost impossible to do it. By the time the > App >>> constructor has executed, many modules are imported already. Even >>> putting >>> the sys.modules line at the top of A's constructor is not enough >>> because >>> of >>> the fact that many modules are already imported. I even tried reload >>> the >>> modules but that caused other problems. >>> >>> I understand that you consider this not stricly a bug. But there *is* a >>> need >>> to access the application from everywhere without passing it around, >>> and >>> qApp exists exactly for that. In C++, you can downcast it to whatever >>> app >>> type you defined and use it. This is impossible with PyQt. >> >> No it isn't - sip.cast() > > What would the correct syntax would be, then? > > def pyApp(): > import sip > return sip.cast(qApp, App) > > gives me a: > > SystemError: error return without exception set
That's the correct syntax. I assume that you have called the App ctor by the time you call pyApp(). If so, can you put together a small, complete example? Phil _______________________________________________ PyKDE mailing list [email protected] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
