Problem mit wxTreeCtrl

Plattformunabhängige GUIs mit wxWidgets.
Antworten
tomate
User
Beiträge: 48
Registriert: Sonntag 5. August 2007, 12:07

Hallo,
ich bekomme folgende Fehlermeldung:
Traceback (most recent call last):
File "guiadv.py", line 212, in OnStart
self.NewTreeNode()
File "guiadv.py", line 289, in NewTreeNode
self.ParameterTree()
File "guiadv.py", line 293, in ParameterTree
root = self.tree.AppendItem(self.test_root, "Parameter")
File "C:\Programme\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\_controls.py", line 5429, in AppendItem
return _controls_.TreeCtrl_AppendItem(*args, **kwargs)
wx._core.PyAssertionError: C++ assertion "parent.IsOk() || !(HTREEITEM)::SendMessageW((((HWND)GetHWND())), (0x1100 + 10), (WPARAM)(0x0000), (LPARAM)(HTREEITEM)(0))" failed at ..\..\src\msw\treectrl.cpp(1452) in wxTreeCtrl::DoInsertAfter(): can't have more than one root in the tree

Der Code:

Code: Alles auswählen

    def OnStart(self, event):
        
        ...


        self.tests[self.test_counter] = opti.Experiment(a, b, c)

        try1 = opti.MyClass(self.data, self.tests[self.test_counter], status_func = self.show_status, finished_func = self.thread_finished)  
        #start_new_thread(try1.run, ())
        
        self.NewTreeNode()
        self.tree.Expand(self.experimente_root)
        self.test_counter += 1
Wenn ich try1 nicht erzeuge, kann ich neue Elemente in den Baum einfügen. Wenn ich try1 erzeuge, kommt die Fehlermeldung.

Hat jemand ne Idee woran es liegen könnte?
DoInsertAfter(): can't have more than one root in the tree
Macht für mich leider keinen Sinn :(

Danke
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

tomate hat geschrieben:can't have more than one root in the tree
Hallo tomate!

Du kannst in einem TreeView nur eine Wurzel haben. In dieses Wurzel-Objekt werden dann die einzelnen Nodes eingefügt. Es darf nur EIN Node ohne Parent geben. Und das ist dann die Wurzel.

Du versuchst anscheinend mehrere Wurzel-Objekte zu erstellen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
tomate
User
Beiträge: 48
Registriert: Sonntag 5. August 2007, 12:07

Danke Gerold!
So etwas in der Richtung hab ich auch vermutet. Mir ist nur nicht klar wieso es funktioniert, wenn ich try1 nicht erzeuge. Damit dürfte ich ja eigentlich keine neue Wurzel erzeugen.

Hast du ne Idee wie ich den Fehler einkreisen kann?
BlackJack

Da wir nicht wissen was `try1` ist, können wir Dir da wohl auch nicht helfen, oder!? Vermutlich erzeugst Du in den Thread eine weitere Wurzel. Um mal das offensichtliche auszusprechen.
tomate
User
Beiträge: 48
Registriert: Sonntag 5. August 2007, 12:07

Der Thread ist auskommentiert.

Ich erzeuge also eigentlich nur try1, was nichts mit der GUI zu tun haben sollte. Deshalb bin ich verwirrt.

Ich such mal weiter

edit:
erledigt, hatte nichts mit try1 zu tun, aber trotzdem dumm von mir :(
Antworten