Russian Qt Forum

Qt => Вопросы новичков => Тема начата: demaker от Август 08, 2014, 13:27



Название: QGraphicsSimpleTextItem, QGraphicsTextItem
Отправлено: demaker от Август 08, 2014, 13:27
Создаю свой класс унаследованный от QGraphicsObject и добавляю его на сцену.
Код
C++ (Qt)
class MyClass: public QGraphicsObject
{
...
}
 


Затем в конструкторе класса создаю объект типа QGraphicsSimpleTextItem
Код
C++ (Qt)
 
MyClass::MyClass(QGraphicsScene*parent):
     QGraphicsObject()
{
 
text = new QGraphicsSimpleTextItem(this);
text->setText("TEXT");
text->setPos(200,200);
}
 
И текст на отображается;

А если создать объект класса унаследованного от QGraphicsTextItem
и прописать ему boundingRect
Код
C++ (Qt)
QRectF GraphicsTextItem::boundingRect() const
{
return QRectF(0,0,30,16);
}
 

и попробовать также отобразить текст
Код
C++ (Qt)
 
MyClass::MyClass(QGraphicsScene*parent):
     QGraphicsObject()
{
 
text1 = new GraphicsSimpleTextItem(this);
text1->setPlainText("TEXT");
text1->setPos(200,200);
}
 

то текст не отображается

Подскажите с чем может быть это связано ???



Название: Re: QGraphicsSimpleTextItem, QGraphicsTextItem
Отправлено: Hrundel от Август 09, 2014, 01:33
Попробуй их не вкладывать друг в друга, а сгруппировать через QGraphicsItemGroup Class.


Название: Re: QGraphicsSimpleTextItem, QGraphicsTextItem
Отправлено: Nidxogg от Август 09, 2014, 20:51
Там вроде метод paint надо переопределить.


Название: Re: QGraphicsSimpleTextItem, QGraphicsTextItem
Отправлено: demaker от Август 11, 2014, 10:54
Попробуй их не вкладывать друг в друга, а сгруппировать через QGraphicsItemGroup Class.

Ясно, создать группу, а затем ее добавить на сцену.

А ничего если у меня один элемент будет типа QGraphicsObject, а остальные QGraphicsSimpleTextItem?
Это непринципиально?