On Tuesday, 26. March 2002 23:59, Torsten Werner wrote:
P. S.: Habe gerade 'void QObject::removeChild(QObject* obj)' gefunden, probiere es demnächst mal aus. Ist außerdem trotzdem nicht so einfach wie der von mir erhoffte Compiler-Flag.
Du wirst aber bei sowas wie QListView aufpassen müssen, wenn du die Child-Objekte dort nicht über "delete" löschst sondern so wie oben oder mit remove() dann ist Instabilität vorprogrammiert. Für Listen in Qt (für 2.x: QList, 3.x: QPtrList) gibt es setAutoDelete().
Hab auch schon meine Diskussion mit den Trollen dazu (QListView) gehabt, aber im großen und ganzen find ich es gut, daß ein QObject "seine" Kinder übernimmt. Führt zu kürzerem Code, ist (wenn man einmal diese Sichtweise übernommen hat) vorhersehbar, und.... macht Mentoring in #kde.de leichter :)
Hast du dir schon QObjectCleanupHandler angesehen? Oder QObject::childEvent()?
Ansonsten kann ich nur eine Sprache empfehlen, die nicht wie C++ versucht einen Spagat zwischen Assembler und Highlevel hinzubekommen... Für Qt2 gibt's gute Ruby-Bindings, Python soll auch dafür nutzbar sein.
Josef Spillner