Hi @ all!
Ich habe folgendes Problem:
Ich möchte in einem QGraphicsObject einen Zahlenwert anzeigen der in einer Variable gespeichert ist.
Das Zahlenfeld sollte bewegbar sein, damit ich keine Ausrichtung mittels einem Layout machen muss (das haut sonst nicht ganz hin mit meinem Design -> rotierender Zeiger in dessem unterem Viertelkreis dann die Zahlen stehen).
Irgendwie finde ich nichts richtiges dafür.. hatte mir schon QLCDNumber angeschaut, aber da war die ausrichtung schwierig und das erwartet ein QWidget als parent.
Ein QGraphicsSimpleTextItem / QGraphicsTextItem würde zwar gehen, aber dann muss ich immer den int-wert der variable erst in einen QString umwandeln und hab ein wenig mehr arbeit um es gut aussehen zu lassen..
Kennt jmd. eine gute Möglichkeit eine Integer Variable auszulesen uns möglichst unkompliziert anzuzeigen?
Etwas in Richtung des LCDNumber, da mir das recht gut gefallen hat.
Mfg,
[solved]Zahlenfeld in QGraphicsObject
[solved]Zahlenfeld in QGraphicsObject
Zuletzt geändert von Abayo am 18. September 2013 13:23, insgesamt 3-mal geändert.
Re: Zahlenfeld in QGraphicsObject
Ich habe nun versucht eine eigene Klasse Textfeld zu erstellen, welche von QGraphicsTextItem ableitet.
Allerdings bekomme ich nun immer den Fehler:
Die Klasse von der aus ich aufrufe ist ein
und ich übergebe ein
als Parent (soll sich dann mit dem Hintergrund bewegen falls nötig)
insgesamt also in der Klasse speed:
Für Hilfe wäre ich seh dankbar, komme da gerade nicht weiter!
Code: Alles auswählen
#ifndef TEXTFELD_H
#define TEXTFELD_H
#include <QGraphicsTextItem>
#include <QGraphicsItem>
#include <QPainter>
class Textfeld : public QGraphicsTextItem
{
public:
Textfeld( QGraphicsItem *parent );
~Textfeld();
QRectF boundingRect() const;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
};
#endif // TEXTFELD_H
Code: Alles auswählen
Textfeld::Textfeld( QGraphicsItem *parent )
: QGraphicsTextItem(parent)
{
}
QRectF Textfeld::boundingRect() const
{
return QGraphicsTextItem::boundingRect().adjusted(-2,-2,+2,+2);
}
void Textfeld::paint(QPainter *painter,const QStyleOptionGraphicsItem *option,QWidget *widget)
{
QGraphicsTextItem::paint(painter,option,widget);
painter->setPen(Qt::lightGray);
painter->drawRect(boundingRect());
}
kann mir wer sagen was ich hier falsch mache?undefined reference to 'vtable for Textfeld'
Die Klasse von der aus ich aufrufe ist ein
Code: Alles auswählen
class Speed : public QGraphicsObjectund ich übergebe ein
Code: Alles auswählen
class Back_S : public QGraphicsObjectinsgesamt also in der Klasse speed:
Code: Alles auswählen
Speed::Speed(QGraphicsItem *parent)
:QGraphicsObject(parent), speedVal(0), speedValOld(0)
{
int wert = 2;
back = new Back_S(this);
front = new Front_S(back);
textfield = new Textfeld(back);
Re: Zahlenfeld in QGraphicsObject
ok, hab den Fehler gefunden 
Ich sitz wohl schonzu lange am PC... hab diesen kleinen Fehler tatsächlich 2 Stunden lang nicht gesehen...
Für die die es interessiert:
Ich hab einen Destruktor "~Textfeld" in der Headerdatei angegeben, aber nicht in die .cpp-Datei geschrieben..
Edit:
Die obere Frage bleibt aber noch:
Was ist ne gute Methode? Gibt es eine bessere Methode als QGraphicsTextItem?
Ich sitz wohl schonzu lange am PC... hab diesen kleinen Fehler tatsächlich 2 Stunden lang nicht gesehen...
Für die die es interessiert:
Ich hab einen Destruktor "~Textfeld" in der Headerdatei angegeben, aber nicht in die .cpp-Datei geschrieben..
Edit:
Die obere Frage bleibt aber noch:
Was ist ne gute Methode? Gibt es eine bessere Methode als QGraphicsTextItem?