Das Übungsprogramm ist eine Todo-liste. Dazu wird der QT-Designer verwendet.
Abweichend vom Tutorial lade ich die *ui Files dynamisch.
Ich stecke in Session 5.
Zum Anlegen eines neuen Todo-Eintrages soll ein selbst erstelltes Widget
ins Hauptfenster eingeblendet werden.
Ich schaffe es nicht dieses selbsterstellte Widget mit dem Platzhalterwidget zu verknüpfen.
Das Projekt besteht aus folgenden Dateien:
todo.py = kümmert sich um die Daten
main.py = Das Programm selbst
editor.py = ruft das selbsterstellte Widget auf, soll später Funktionen zum Editieren von Todo-Einträgen aufnehmen
window.ui= das Hauptfenster
editor.ui = das selbsterstellte Widget
Fehlermeldung beim Starten von main.py:
Code: Alles auswählen
Traceback (most recent call last):
File "main.py", line 77, in <module>
main()
File "main.py", line 70, in main
window = MyMainWindow()
File "main.py", line 26, in __init__
self.ui = uic.loadUi(ui_file, self)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/__init__.py", line 177, in loadUi
return DynamicUILoader().loadUi(uifile, baseinstance)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/Loader/loader.py", line 24, in loadUi
return self.parse(filename, os.path.dirname(filename))
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 842, in parse
actor(elem)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 689, in createUserInterface
self.traverseWidgetTree(elem)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 667, in traverseWidgetTree
handler(self, child)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 169, in createWidget
self.traverseWidgetTree(elem)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 667, in traverseWidgetTree
handler(self, child)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 403, in createLayout
self.traverseWidgetTree(elem)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 667, in traverseWidgetTree
handler(self, child)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 446, in handleItem
self.traverseWidgetTree(elem)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 667, in traverseWidgetTree
handler(self, child)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 169, in createWidget
self.traverseWidgetTree(elem)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 667, in traverseWidgetTree
handler(self, child)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 163, in createWidget
self.stack.push(self.setupObject(widgetClass(elem), parent, elem))
File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 135, in setupObject
obj = self.factory.createQObject(clsname, name, args, is_attribute)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/objcreator.py", line 67, in createQObject
return self._cpolicy.instantiate(classType, *args, **kwargs)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/Loader/qobjectcreator.py", line 71, in instantiate
return clsObject(*ctor_args)
File "/home/seko/projekte/pyqt_by_example/ralsina-pyqt-by-example-46ebe52/session1/editor.py", line 24, in __init__
self.ui = uic.loadUi(ui_file, self)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/__init__.py", line 177, in loadUi
return DynamicUILoader().loadUi(uifile, baseinstance)
File "/usr/lib/pymodules/python2.6/PyQt4/uic/Loader/loader.py", line 24, in loadUi
return self.parse(filename, os.path.dirname(filename))
File "/usr/lib/python2.6/posixpath.py", line 119, in dirname
i = p.rfind('/') + 1
AttributeError: 'QSplitter' object has no attribute 'rfind'