Hallo ihr,
gibt es einen wesentlichen Unterschied ob ich QGraphicsItem oder QGraphicsObject verwende? In meiner QGraphicsScene können u.U. bis zu ca. 2000 verschiebbare Objekte sein.
Aktuell möchte ich ein gemeinsames Kontextmenü für alle Items erstellen. Soll ich QAction lieber ausserhalb erstellen oder kann ich das ruhig in jedem Item einzeln machen?
lg Michi
QGraphicsItem vs QGraphicsObject -> Performance?
Der wesentliche Unterschied dürfte der Speicherbedarf sein (Deswegen hat ein QGraphicsItem auch standardmäßig keine QObject-Ableitung. Steht auch irgendwo in der Doku).
Von der Geschwindigkeit her dürfte kein Unterschied sein.
Und wo du dein QAction erstellt hängt doch von deinem Anwendungsfall ab. Aber ich würde defaultmäßig keine 2000 QActions erstellen.
Von der Geschwindigkeit her dürfte kein Unterschied sein.
Und wo du dein QAction erstellt hängt doch von deinem Anwendungsfall ab. Aber ich würde defaultmäßig keine 2000 QActions erstellen.
Re: QGraphicsItem vs QGraphicsObject -> Performance?
Höh? Die QAction* kommen lokal in die QGraphicsItem::contextMenuEvent(). Jedenfalls ist das die Methode, wie sie in der Doku zu genannter Funktion exemplarisch angeführt ist.mikemc hat geschrieben:Aktuell möchte ich ein gemeinsames Kontextmenü für alle Items erstellen. Soll ich QAction lieber ausserhalb erstellen oder kann ich das ruhig in jedem Item einzeln machen?
menu.exec() liefert dir dann die gewählte QAction. Kannst also sogar auf connects verzichten!
QGraphicsObject macht sinn, wenn das QGraphicsItem selber SIGNALS aussenden soll und per SLOTS steuerbar sein soll. Auch Properties gehen nicht ohne Q_OBJECT, was ein QGraphicsItem nicht per QPropertyAnimation animierbar macht.