[gelöst] ExtendedSelection mit Kontext Menü in Qt4

Alles rund um die Programmierung mit Qt
Antworten
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

[gelöst] ExtendedSelection mit Kontext Menü in Qt4

Beitrag von Volker »

Hallo,

ich hab folgendes Problem bei dem ich keine Ahnung hab wie ich das lösen könnte:

In einem TreeView hab ich einige Dateien und Verzeichnisse aufgelistet. Nun möchte ich ein Kontextmenü haben, welches mir Optionen zur Bearbeitung der ausgewählten Dateien anbietet.
Da ich als SelectionMode ExtendedSelection gewählt hab, dachte ich eigentlich, ich könnte damit mehrere Dateien auswählen. Das Problem ist allerdings, so bald ich nach dem Markieren der Dateien mit der rechten Maustaste in das TreeView Objekt klicke um das Kontextmenü zu öffnen, ändert sich die Selektion auf den Eintrag, bei dem ich mit rechts geklickt habe.
Lässt sich das irgendwie umgehen, so daß die rechte Maustaste keine Änderungen mehr an der Auswahl vornimmt, sondern nur noch die Linke?


Wäre super wenn mir da jemand weiterhelfen könnte!

Danke
Zuletzt geändert von Volker am 8. Juli 2005 21:21, insgesamt 1-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: ExtendedSelection mit Kontext Menü in Qt4

Beitrag von macman »

mousePressEvent() schon überschrieben? Eventuell sind die Einträge dann noch selektiert und Du kannst sie in einer Membervariable speichern. Vielleicht hilft auch selectionChanged(), um zu sehen wann sie deselektiert werden.
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Re: ExtendedSelection mit Kontext Menü in Qt4

Beitrag von Volker »

macman hat geschrieben:mousePressEvent() schon überschrieben?
Bisher hatte ich keine Unterklasse von QTreeView gebildet, ich dachte vielleicht gibts ja auch eine einfachere Möglichkeit. Aber ich werd's mal damit probieren.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: ExtendedSelection mit Kontext Menü in Qt4

Beitrag von macman »

Volker hat geschrieben:Bisher hatte ich keine Unterklasse von QTreeView gebildet, ich dachte vielleicht gibts ja auch eine einfachere Möglichkeit. Aber ich werd's mal damit probieren.
Ich würd's erst in dem Parent versuchen, was immer es auch ist. Gib Bescheid ob es geklappt hat.
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Geklappt

Beitrag von Volker »

Nachdem ich mir mal den Source von QTreeView angeschaut hab, schiens mir doch einfacher, eine Unterklasse von QTreeView zu erzeugen. Hab nun einfach eine Abfrage in meiner mousePressEvent Methode, ob die rechte Maustaste gedrückt wurde und falls nicht ruf ich wieder die Oberklassenmethode von QTreeView auf.

Nachdem ich nun sowieso eine Unterklasse hab, könnte ich mir damit auch den Umweg des Kontextmenüs über das customContextMenuRequested Signal sparen und es gleich in der contextMenuEvent Methode implementieren.

Also danke für den Tip. Hat mir weitergeholfen.
Antworten