diff options
Diffstat (limited to 'python/pykde/examples/pykde-sampler/runner.py')
-rw-r--r-- | python/pykde/examples/pykde-sampler/runner.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/python/pykde/examples/pykde-sampler/runner.py b/python/pykde/examples/pykde-sampler/runner.py new file mode 100644 index 00000000..8b1ad2c5 --- /dev/null +++ b/python/pykde/examples/pykde-sampler/runner.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python +""" + +""" +import sys +from kdecore import KApplication, KCmdLineArgs +from kdeui import KMainWindow +from qt import QVBoxLayout + +## relative import -- cry me a river! +import about + + +class SamplerRunnerWindow(KMainWindow): + def __init__(self, ctor): + KMainWindow.__init__(self) + layout = QVBoxLayout(self) + layout.setAutoAdd(True) + self.widget = ctor(self) + + +def importItem(name): + """ importItem(name) -> import an item from a module by dotted name + + """ + def importName(name): + """ importName(name) -> import and return a module by name in dotted form + + Copied from the Python lib docs. + """ + mod = __import__(name) + for comp in name.split('.')[1:]: + mod = getattr(mod, comp) + return mod + + names = name.split('.') + modname, itemname = names[0:-1], names[-1] + mod = importName(str.join('.', modname)) + return getattr(mod, itemname) + + + +if __name__ == '__main__': + options = [('+item', 'An item in the sys.path')] + KCmdLineArgs.init(sys.argv, about.about) + KCmdLineArgs.addCmdLineOptions(options) + + args = KCmdLineArgs.parsedArgs() + if not args.count(): + args.usage() + else: + pathitem = args.arg(0) + widget = importItem(pathitem) + + app = KApplication() + mainWindow = SamplerRunnerWindow(widget) + mainWindow.show() + app.exec_loop() |