Название: Отобразить текст над QGraphicsRectItem Отправлено: UVV от Апрель 28, 2015, 15:33 Привет.
Мне нужно отобразить квадрат на QGraphicsScene, с чем справляется QGraphicsRectItem, и подпись к нему. Вот тут я немного запутался, как лучше это сделать. Если использую QGraphicsTextItem, то непонятно как выставить размер текста. Логически текст с квадратом - это одна сущность, поэтому я объединил их в QGraphicsItemGroup. Подскажите, в какую сторону лучше смотреть? Спасибо. Название: Re: Отобразить текст над QGraphicsRectItem Отправлено: gil9red от Апрель 28, 2015, 15:52 Самое простое -- подобрать на глаз :)
Или смотрите в сторону QFontMetrics::boundingRect (http://doc.qt.io/qt-4.8/qfontmetrics.html#boundingRect-2), только идете от противного -- подбираете такой размер шрифта, чтобы подошло под размер квадрата Название: Re: Отобразить текст над QGraphicsRectItem Отправлено: UVV от Апрель 28, 2015, 16:17 Самое простое -- подобрать на глаз :) Или смотрите в сторону QFontMetrics::boundingRect (http://doc.qt.io/qt-4.8/qfontmetrics.html#boundingRect-2), только идете от противного -- подбираете такой размер шрифта, чтобы подошло под размер квадрата Проблема в том, что мой квадрат сильно маленький. Код: m_pRectItem->setRect(0, 0, 0.04, 0.04); Название: Re: Отобразить текст над QGraphicsRectItem Отправлено: UVV от Апрель 28, 2015, 16:27 Хм... сделал
Код: m_pTextItem->scale(0.01, -0.01) Название: Re: Отобразить текст над QGraphicsRectItem Отправлено: Fregloin от Апрель 29, 2015, 10:02 а не проще ли написать своего наследника, который бы рисовал текс в рамке? Работы на 5 минут
Название: Re: Отобразить текст над QGraphicsRectItem Отправлено: UVV от Апрель 29, 2015, 14:53 Будут те же яйца только в профиль же )
Название: Re: Отобразить текст над QGraphicsRectItem Отправлено: Fregloin от Апрель 30, 2015, 09:53 да, но у вас больше контроля над вашим элементом..
Название: Re: Отобразить текст над QGraphicsRectItem Отправлено: UVV от Май 04, 2015, 18:43 да, но у вас больше контроля над вашим элементом.. А можно небольшой примерчик, как нарисовать такой маленький текст?Название: Re: Отобразить текст над QGraphicsRectItem Отправлено: Fregloin от Май 05, 2015, 09:48 Вам нужно что бы размер текста измеялся в зависимости от размера кавадрата? что бы он вмещался в него? или размер статический?
Название: Re: Отобразить текст над QGraphicsRectItem Отправлено: UVV от Май 05, 2015, 11:00 Вам нужно что бы размер текста измеялся в зависимости от размера кавадрата? что бы он вмещался в него? или размер статический? Размер квадрата и текста статичный.Сейчас я столкнулся со следующей проблемой из-за setScale(): Цитировать pItem->itemsBoundingRect, width = 1.96 height = 1.08 x = 0 y = -0.4 Как видно по ширине и высоте в scale() установено значение 20. Откуда берутся x и y, я пока не понял.pItem->boundingRect() mapped to scene, width = 39.2 height = 21.6 x = 7.53944 y = 43.1939 Проблема в том, что на pItem установлен флаг ItemIgnoresTransformations, и функции ZoomIn и FitInView плывут влево из-за больших значений ширины и высоты. Название: Re: Отобразить текст над QGraphicsRectItem Отправлено: UVV от Май 05, 2015, 11:10 Собсно теперь вопрос. Если я переопределю mapRectToScene() и буду игнорировать там scale() будет ли это работать, и если да, то будет ли это правильно? )
|