Habe vor ca. 3 Wochen mit Qt angefangen (Vollzeit) und hab mir seither eigentlich immer mit google oder dem Forum hier helfen können. Jetzt kommt aber mein erstes Problem auf das ich noch keine Antwort gefunden habe. Hört sich eigentlich einfach an: Ich möchte einen QString, fest auf einem Rechteck (Polygon) anbringen.
Das Rechteck ist auf einer QGraficScene platziert und lässt sich per MouseMoveEvent verschieben.
Rechteck Eigenschaften (Größe, Farbe, der zu Platzierene String...) wird aus einer Datei ausgelesen und an die Zeichenmethode übergeben.
Zur Zeit sieht das ganze so aus:
Header:
Code: Alles auswählen
#ifndef CLAGE_H
#define CLAGE_H
#include "Allgemein.h"
class CLage : public QGraphicsPolygonItem
{
public:
CLage(QString, QString, int , int, QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
virtual ~CLage();
private:
QPolygonF myPolygon;
};
#endif // CLAGE_H
Die .cpp
Code: Alles auswählen
#include "CLage.h"
CLage::CLage (QString Farbe, QString Name, int Hoehe, int Breite, QGraphicsItem *parent, QGraphicsScene *scene)
: QGraphicsPolygonItem(parent, scene)
{
myPolygon << QPointF(-Breite/2, -Hoehe/2) << QPointF(Breite/2, -Hoehe/2)
<< QPointF(Breite/2, Hoehe/2) << QPointF(-Breite/2, Hoehe/2)
<< QPointF(-Breite/2, -Hoehe/2);
setPolygon(myPolygon);
setFlag(QGraphicsItem::ItemIsMovable, true);
setFlag(QGraphicsItem::ItemIsSelectable, true);
if (Farbe=="Rot")
setBrush(Qt::red);
else if (Farbe=="Blau")
setBrush(Qt::blue);
//noch einige else if...
}
//Braucht man die Destruktoren überhaupt in Qt???
CLage::~CLage()
{
}
Ich bin grad ein wenig Ratlos wie man das ganze den anstellen könnte.. in WPF gabs da ne schöne Methode wo an einfach einen String in einen Brush umformen kann, leider is diese hier nicht vorhanden
Werde hier wohl den QPainter benutzen müssen? Oder gibt es noch eine andere Möglichkeit?
Beim QPainter bin ich mir nur sehr unsicher was die Möglichkeiten des MouseMoveEvents usw. angeht.
Jemand einen Tipp? (Glaube das ganze ist so einfach das ich schon viel zu kompliziert denke..)
Thx!