FileBrowser in TreeListCtrl

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Kathrin
User
Beiträge: 43
Registriert: Dienstag 6. Dezember 2005, 15:11

Hallo!

Ich möchte in meiner TreeListCtrl einen FileBrowser einbauen, der mir alle Dateien und Ordner ab einem eingegebenen Pfad (in meinem Fall Musikpfad) darstellt. In den Spalten daneben stehen die ID3-Tags zu den Musikdateien.

Ich weiß nicht so ganz, wie ich meinen Filebrowser in meine TreeListCtrl bekomme. Gibt es dafür eine Funktion oder ein Beispiel irgendwo?

So wie ich das verstanden hab, muss ich ja beim TreeListCtrl vorher definieren, wie meine Ordner aufgebaut sind und welchen Inhalt sie haben. Da kommt bei mir ein ziemlich komplizierter Algorithmus raus, den ich auch nicht ganz hinbekomme. (Darum poste ich jetzt auch nichts)

Bis jetzt hab ich das mit ListCtrl gemacht und wollte es jetzt auf TreeListCtrl umstellen.

Ich hoffe mir kann jemand helfen ... ich kriegs einfach nicht hin :cry:

Danke schonmal,
Grüße, Kathrin!
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Kathrin hat geschrieben:Hallo!


Ich weiß nicht so ganz, wie ich meinen Filebrowser in meine TreeListCtrl bekomme. Gibt es dafür eine Funktion oder ein Beispiel irgendwo?
Hallo,

Was spricht dagegen, ein GenericDirCtrl zu verwenden?

Hm, wenn daneben die ID3-Tags stehen sollten?

Verwendest du Windows?
Kennst du dann das GenericWinDirControl? sieht sehr nett aus.
http://j.domaindlx.com/elements28/wxpyt ... rCtrl.html

Auch wenn es vielleicht nicht ganz das ist, was du brauchst,
kannst du dir ja den Code da ansehen und eventuell anpassen oder
so erweitern, um es mit einem TreeListCtrl zu bauen mit der spalte id3 tags.
Kathrin
User
Beiträge: 43
Registriert: Dienstag 6. Dezember 2005, 15:11

Hmm, wär ja auch zu schön gewesenzu, wenn es so etwas schon gegeben hätte :)

Ich wollte erst einen GenericDirCtrl (Danke, unter Windows ist GenericWinDirCtrl noch besser) in meine TreeListCtrl einbauen, aber das hat nicht geklappt.
Hab mir den Code zum GenericWinDirCtrl angeschaut und auch schon probiert ihn von TreeCtrl zu TreeListCtrl zu erweitern, aber ich programmier noch nicht so lange und da ist das schon ein hartes Stück.

Aber danke bis dahin schonmal!
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Kathrin hat geschrieben:Hmm, wär ja auch zu schön gewesenzu, wenn es so etwas schon gegeben hätte :)

Ich wollte erst einen GenericDirCtrl (Danke, unter Windows ist GenericWinDirCtrl noch besser) in meine TreeListCtrl einbauen, aber das hat nicht geklappt.
Hab mir den Code zum GenericWinDirCtrl angeschaut und auch schon probiert ihn von TreeCtrl zu TreeListCtrl zu erweitern, aber ich programmier noch nicht so lange und da ist das schon ein hartes Stück.

Aber danke bis dahin schonmal!
Ein Fall für die Experten => wxpython mailing list.

Hab es trotzdem auf die Schnelle probiert:
geänderte Zeilen in GenericWinDirCtrl.py

Code: Alles auswählen

import  wx.gizmos   as  gizmos
# A TreeCtrl that sort stuff the way we need here.
class _DirTreeCtrl(gizmos.TreeListCtrl):
    def __init__(self, parent):
        gizmos.TreeListCtrl.__init__(self, parent, -1,
                             style = wx.TR_HIDE_ROOT|wx.TR_HAS_BUTTONS)

Code: Alles auswählen

    def _buildTree(self):
        self.tree = _DirTreeCtrl(self)
        self.tree.AddColumn("Main column")
        self.tree.AddColumn("Column 1")

Code: Alles auswählen

    def _addFilesFolders(self, item):
        try:
            data = self.tree.GetPyData(item).GetFilePath()
        except:
            return
Den Rest überlasse ich dir oder der Mailing Liste. :)
Kathrin
User
Beiträge: 43
Registriert: Dienstag 6. Dezember 2005, 15:11

Danke für die Hilfe! :D

Soweit war ich sogar auch schon. Ich versteh nur nicht so ganz, wie man jetzt Inhalt in die Spalten bekommt.
Also ich bekomm schon Inhalt rein, aber nicht da, wo ich will.
Und in meiner 3. Spalte sind irgendwie immer meine Icons drin ...

Aber ich geb nicht auf, das wird ja wohl irgendwie zu schaffen sein (... auch für Anfänger wie mich) :wink:

Das mit mailing list hab ich mir auch schon überlegt , aber irgendwie trau ich mich noch nicht ganz.
Mein Englisch ist nicht so toll und ich weiß nicht so ganz, wie ich da meine Fragen formulieren soll :oops:

Aber ich geb bescheid, wenn ich Fortschritte mach, ok?!
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Kathrin hat geschrieben:
Das mit mailing list hab ich mir auch schon überlegt , aber irgendwie trau ich mich noch nicht ganz.
Mein Englisch ist nicht so toll und ich weiß nicht so ganz, wie ich da meine Fragen formulieren soll :oops:
Das ist ganz unwichtig.
Es posten viele Leute hinein, deren Hauptsprache nicht Englisch ist.
Platform (also Windows, Linux ..), wxPython version und falls du ein
kleines lauffähiges sample, hast auch hineinposten.
Kathrin hat geschrieben: Aber ich geb bescheid, wenn ich Fortschritte mach, ok?!
Ok. :)
Kathrin
User
Beiträge: 43
Registriert: Dienstag 6. Dezember 2005, 15:11

Hey, also irgendwiehab ich's plötzlich hingekriegt (bin richtig stolz auf mich) :D

Das einzigste, was mich jetzt noch stört, ist, dass immer mein gesamtes Dateisystem angzeigt wird, ich will es aber nur ab einem bestimmten Ordner. Das hat mich am GenericDirCtrl schon gestört.

Aber das wird jetzt wohl auch noch gehn. Es gibt nicht zufällig ne Einstellung dafür, oder? Bevor ich wieder den ganzen Code umschreiben muss ...
Antworten