Problem mit wxTreeCtrl

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

Problem mit wxTreeCtrl

Beitragvon tomate » Donnerstag 25. Oktober 2007, 10:47

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: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Problem mit wxTreeCtrl

Beitragvon gerold » Donnerstag 25. Oktober 2007, 11:05

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

Beitragvon tomate » Donnerstag 25. Oktober 2007, 11:11

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

Beitragvon BlackJack » Donnerstag 25. Oktober 2007, 12:35

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

Beitragvon tomate » Donnerstag 25. Oktober 2007, 13:30

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 :(

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder