Seite 1 von 1

Objekt auf QGraphicsView verschieben

Verfasst: 11. August 2010 20:52
von Mani99
Hi,

ich habe ein QGraphicsView, darauf platziere ich eine QGraphicsScene, und darauf ein objekt z.b. ein QLabel.

Wie kann ich das QLabel darauf verschieben?

Ich habe bis jetzt eine neue klasse von QGraphicsScene abgeleitet und darin das mouseMoveEvent überschrieben.

Code: Alles auswählen

class GraphicsSceneTest : public QGraphicsScene
{
public:
    GraphicsSceneTest();
    void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
};

Code: Alles auswählen

#include "graphicsscenetest.h"

GraphicsSceneTest::GraphicsSceneTest()
{
}

void GraphicsSceneTest::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{

}
In der hauptklasse habe ich das auch das mouseMoveEvent erstellt und übergeben das event an die abgeleitete scene.

Code: Alles auswählen

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    mScene = new GraphicsSceneTest();
}

void MainWindow::mouseMoveEvent(QGraphicsSceneMouseEvent *e)
{
    mScene->mouseMoveEvent(e);
}
Ich würde mich über ein kurzes beispiel freuen oder einen hinweis oder dgl.

Danke!

Verfasst: 12. August 2010 09:21
von franzf
Schau dir mal in deiner Qt-Installation/Sourcen das "demos/embeddeddialog" an. Ist wahrscheinlich das was du willst.

Verfasst: 12. August 2010 12:24
von ScyllaIllciz
Es reicht ein:

Code: Alles auswählen

    m_textItem->setFlag(QGraphicsItem::ItemIsMovable, true);
Brauchst also kein Event abfangen!!!

Scylla

Verfasst: 12. August 2010 12:30
von Mani99
Danke für die antworten, ich werd mir beides ansehen.

Verfasst: 12. August 2010 13:08
von franzf
ScyllaIllciz hat geschrieben:Es reicht ein:

Code: Alles auswählen

    m_textItem->setFlag(QGraphicsItem::ItemIsMovable, true);
Brauchst also kein Event abfangen!!!

Scylla
Das hab ich auch gedacht, habs ausprobiert - geht mit QGraphicsProxyWidgets nicht, und das braucht er wenn er ein QWidget (das angegebene QLabel) reinlegen will.
Sollte das QLabel nur aus Unwissenheit angeführt worden sein: Es gibt QGraphicsTextItem (und viele andere). Oder willst du wirklich noch andere QWidgets einfügen?

Verfasst: 12. August 2010 13:16
von Mani99
Testweise wollte ich auch andere widgets einfügen (label, button, etc.), um die graphics klassen etwas in den griff zu bekommen.

Da ich aber jetzt testweise produktiv etwas machen soll, werde ich wohl QGraphicsTextItem verwenden bzw. die verfügbaren graphics widgets.

Sobald ich aber etwas zeit habe, werde ich mich testweise um die anderen widgets auch kümmern.

Danke für die infos.