Russian Qt Forum

Qt => Вопросы новичков => Тема начата: demaker от Октябрь 30, 2014, 16:33



Название: QGraphicsTextItem
Отправлено: demaker от Октябрь 30, 2014, 16:33
Пытаюсь при помощи
Код:
QGraphicsTextItem
Вывести на сцену текст в рамке с закрашенным фоном.
Но почему-то рамка с закрашенным фоном на сцене появляются, а текста нету. ???

Код
C++ (Qt)
TextCellItem::TextCellItem(int w, int h, const QString &text, QGraphicsItem *parent):
   QGraphicsTextItem(text,parent)
{
   boundingWidth = w;
   boundingHeight = h;
   qDebug()<<"width = "<<textWidth() ;
}
 
TextCellItem::~TextCellItem()
{
}
 
QRectF TextCellItem::boundingRect() const
{
   return QRectF(0,0,boundingWidth,boundingHeight);
}
 
QPainterPath TextCellItem::shape() const
{
   QPainterPath path;
 
   QPolygon polygon;
   polygon << QPoint(0,0)
           << QPoint(boundingWidth - 1,0)
           << QPoint(boundingWidth - 1,boundingHeight - 1)
           << QPoint(0,boundingHeight - 1)
           << QPoint(0,0);
 
   path.addPolygon(polygon);
   return path;
}
 
void TextCellItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
   QPen pen(QBrush(Qt::black),1,Qt::SolidLine);
   painter->setBrush(Qt::white);
   painter->setPen(pen);
   painter->drawPath(shape());
}
 

Подскажите в чем может быть причина.


Название: Re: QGraphicsTextItem
Отправлено: vulko от Октябрь 30, 2014, 16:50
painter->drawPath(shape());

а где painter->drawText?


Название: Re: QGraphicsTextItem
Отправлено: demaker от Октябрь 30, 2014, 17:16
СПСБ :)


Название: Re: QGraphicsTextItem
Отправлено: Fregloin от Ноябрь 04, 2014, 10:52
ну и shape() для такого элемента переопределять нет смысла..