Seite 1 von 1

Problem mit wxTreeCtrl

Verfasst: Donnerstag 25. Oktober 2007, 10:47
von tomate
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

Re: Problem mit wxTreeCtrl

Verfasst: Donnerstag 25. Oktober 2007, 11:05
von gerold
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
:-)

Verfasst: Donnerstag 25. Oktober 2007, 11:11
von tomate
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?

Verfasst: Donnerstag 25. Oktober 2007, 12:35
von 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.

Verfasst: Donnerstag 25. Oktober 2007, 13:30
von tomate
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 :(