diff options
Diffstat (limited to 'examples/pytde-sampler/runner.py')
-rwxr-xr-x | examples/pytde-sampler/runner.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/examples/pytde-sampler/runner.py b/examples/pytde-sampler/runner.py new file mode 100755 index 0000000..e153fae --- /dev/null +++ b/examples/pytde-sampler/runner.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python +""" + +""" +import sys +from tdecore import KApplication, KCmdLineArgs +from tdeui import KMainWindow +from qt import TQVBoxLayout + +## relative import -- cry me a river! +import about + + +class SamplerRunnerWindow(KMainWindow): + def __init__(self, ctor): + KMainWindow.__init__(self) + layout = TQVBoxLayout(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() |