auf TreeContrel in einer Pane zugreifen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Benutzeravatar
mutanab
User
Beiträge: 21
Registriert: Dienstag 25. März 2008, 15:04

Hey,

ich steh auf dem Schlauch. Wahrscheinlich seh ich vor lauter Wald die Bäume nicht mehr. Aber nachdem ich nun irgendwie total den Faden verloren hab, frag ich mal eben hier.

Ich habe ein größeres Programm, welches über eine Projektstruktur organisiert sein soll. Hierzu habe ich direkt beim Start auf der rechten Seite eine Tree Control eingerichtet, die erst einmal leer ist:


erstellen:

Code: Alles auswählen

self._mgr.AddPane(self.CreateTreeCtrl("ProjectSpace"), wx.aui.AuiPaneInfo().
                          Name("ProjectTree").Caption("Project Space").
                          Left().Layer(1).Position(1).CloseButton(True).MaximizeButton(True))
dann, positionieren

Code: Alles auswählen

self._mgr.GetPane("ProjectTree").Show().Left().Layer(0).Row(0).Position(0)
dann habe ich ein paar Funktionen zur Projektverwaltung eingebaut. Zum Beispiel: ein neues Projekt erstellen. Ein neues Projekt erstellen heißt:

erst wird geguckt ob noch ein Projekt im Arbeitsbereich ist, wenn ja wird abstpeichern angeboten

dann wird der neue Projektname abgefragt

dann wird eine Filestruktur errichtet, die jedes Projekt von vorneherein hat

dann wird das neue Projekt erst mal im workspace gespeichert

und angezeigt

mein Problem ist nun ein ziemlich pimpfiges, und wahrscheinlich bin ich nur blind. Wenn ich ein neues Projekt mache möchte ich die Filestruktur ja in den bestehenden Pane/in die tree Control "ProjectSpace" schreiben und nicht immer wieder neue machen. Wie kann ich denn auf den zugreifen in meiner funktion?

natürlich bekomme ich einen fehler wenn ich zum beispiel so was versuche wie:

Code: Alles auswählen

self._mgr.GetPane("ProjectTree").AssignImageList(imglist)
Fehler hier:
AttributeError: 'AuiPaneInfo' object has no attribute 'AssignImageList'


Das ist also gar nicht der treeControl. Wie heißt er denn? bzw. wo muss ich denn so sachen wie .AppendItem .AddRoot etc. anhängen?

Schätze das ist trivial, aber ich seh es nicht...bitte erlös mich einer..

gruß
mutanab
"He, ich bin ein Mensch, aber ich bin fast zwanzigtausend Lichtjahre von zu Hause weg, und wir leben unter stockverrückten Aliens, umgeben von Superwaffen, mittendrin in dem verdammten, wahnwitzigen Trubel galaktischer Geschichte und Politik!"(Algebraist)
Benutzeravatar
mutanab
User
Beiträge: 21
Registriert: Dienstag 25. März 2008, 15:04

ohje, wie vermutet war das denkbar einfach *aufdemschlauchgestandenhat*

also man muss einfach nur folgendes machen:

Den Tree selber erst mal in eine Variable Packen (den will man ja) und nicht die Pane, und dann die Variable in den Pane:

Code: Alles auswählen

ProjectTree= self.CreateTreeCtrl("ProjectSpace")
self._mgr.AddPane(ProjectTree, wx.aui.AuiPaneInfo().
                          Name("ProjectTree").Caption("Project Space").
                          Left().Layer(1).Position(1).CloseButton(True).MaximizeButton(True))
Dann kann man ihn unten einfach irgendwo rufen und seine Funktionen verwenden, z.B.:

Code: Alles auswählen

ProjectTree.AssignImageList(imglist)
joa, so was ist manchmal zum haareraufen...ich glaub ich mach erst mal ne Pause.

bb
mutanab
"He, ich bin ein Mensch, aber ich bin fast zwanzigtausend Lichtjahre von zu Hause weg, und wir leben unter stockverrückten Aliens, umgeben von Superwaffen, mittendrin in dem verdammten, wahnwitzigen Trubel galaktischer Geschichte und Politik!"(Algebraist)
Antworten