Witam. Mam problem. Chcę sobie zrobić taki element graficzny, który będzie mi wyświetlał obrazek, a obok niego opis. Postanowiłem, że napiszę klasę, która dziedziczy po QGraphicsPixmapItem i po prostu dodam do niej QGraphicsTextItem. Oto ona:
#include <QGraphicsPixmapItem>
#include <QGraphicsTextItem>
#include <QGraphicsScene>
class QGraphicsMytem : public QGraphicsPixmapItem
{
public:
QGraphicsMytem();
QGraphicsTextItem *textItem;
void setPixmap(const QPixmap &pixmap);
int spaceBetweenPixAndText;
void setFont(const QFont &font);
private:
void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
void mousePressEvent(QGraphicsSceneMouseEvent *event);
};
//----------------------------------------------------------------------------------------------------
#include "qgraphicsmytem.h"
#include <QDebug>
QGraphicsMytem::QGraphicsMytem() : QGraphicsPixmapItem(),
spaceBetweenPixAndText(10)
{
textItem = new QGraphicsTextItem("blablablablabal", this);
}
void QGraphicsMytem::setFont(const QFont &font)
{
textItem->setFont(font);
//ustaw tekst na srodku //
textItem->setPos(pixmap().width()+spaceBetweenPixAndText, pixmap().height()/2 - textItem->boundingRect().height()/2);
}
void QGraphicsMytem::setPixmap(const QPixmap &pixmap)
{
//ustaw tekst na środku
textItem->setPos(pixmap.width()+spaceBetweenPixAndText, pixmap.height()/2 - textItem->boundingRect().height()/2);
QGraphicsPixmapItem::setPixmap(pixmap);
}
Po dodaniu tego obiektu do sceny(chcę np. ustawić jego pozycję i pobrać szerokość (taką, żeby była równa szerokości pixmapy i tekstu)) pojawiają się dwa ODDZIELNE obiekty :( QGraphicsPixmapItem i QGraphicsTextItem . Stąd moje pytanie - co mam zrobić żeby się dostać do obiektu QGraphicsMytem ??? Rzutować z obiektu PixmapItem, TextItem ? Proszę o pomoc .