Context Menu soll nur im bestimmten Bereich aufrufbar sein

Alles rund um die Programmierung mit Qt
Antworten
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Context Menu soll nur im bestimmten Bereich aufrufbar sein

Beitrag von Nash »

Hi Ho,
ich habe ein Widget, und in einem bestimmten bereich dieses Widgets will ich, wenn der User die Rechte Maustaste drückt, das das ContextMenu erscheint.

desweitern erstellt man ein contextmenu doch immer erst in der Funktion?

Code: Alles auswählen

void contextMenuEvent(QContextMenuEvent* evt);
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Da ruft man es auf, erstellen kannst Du es vorher schon. Allerdings ist ja der Sinn eines ContextMenüs nur sinnvolle Einträge zu enthalten, deshalb erstellt man es erst, wenn es gebraucht wird.

Was die Position angeht, ContextMenuEvent enthält die Mauskoordinaten und damit kannst Du dann prüfen, wo Du bist.
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Beitrag von Nash »

okay, also immer erstellen wenn es aufgerufen wird.

mal ne andere Frage:

muss ich Action die ich erstelle, eigentlich von Hand löschen?

Code: Alles auswählen

m_WireFrameAct = new QAction(tr("Wireframe"), this);
auf ein new muss ja auch ein delete folgen, oder macht das qt für mich?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du hast bei QAction den Parameter this angegeben. Überleg dir mal warum du das getan hast, bzw. lies es in der Doku nach. Dann ergibt sich die Lösung deiner Frage fast von selbst...
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Beitrag von Nash »

die Action ist child eines widgets.
deswegen hab ich den this zeiger übergeben.

Die Aktion bezieht sich damit nur auf das Widget.

Also nehme ich mal an qt löscht das für mich dann automatisch.
Antworten