1) Как я могу обернуть текст в QGraphicsTextItem
, чтобы установить фиксированный прямоугольник с шириной и высотой?Как я могу обернуть текст в QGraphicsItem?
Прямо сейчас я экспериментирую с созданием текста, получением его ограничивающего прямоугольника и изменением размера его в соответствии с полем - но я не могу обернуть его.
class TTT: public QGraphicsTextItem {
TTT() {
{
setPlainText("abcd");
qreal x = m_itemSize.width()/boundingRect().width();
qreal y = m_itemSize.height()/boundingRect().height();
scale(x, y);
}
void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) {
// experiment with clip regions
// text gets covered by hole in clip
QRegion r0(boundingRect().toRect());
QRegion r1(QRect(5, 5, 10, 10), QRegion::Ellipse);
QRegion r2 = r0.subtracted(r1);
painter->setClipRegion(r2);
painter->setBrush(Qt::yellow);
painter->drawRect(boundingRect());
QGraphicsTextItem::paint(painter, option, widget);
}
}
Что делает упаковку, как я могу ее вызвать?
Прямо сейчас, когда я продолжаю печатать, коробка автоматически расширяется.
2) Можно ли обернуть текст в подклассу QGraphicsItem
/QGraphicTextItem
в форме, которая не является прямоугольником?
(Что-то, как в картинке)
Я пытался использовать clipRegion
см код выше, но я предполагаю, что это не правильный путь, отсечение режет текст, но не заворачивать.
Возможно, это было бы ... Если бы я мог понять, как обернуть текст в первую очередь?
Qt 4.8
(Я также отредактировал вопрос, чтобы показать, Qt версия 4.8, извините за бездействие) – Thalia
Это то, чего я не хватало! Это более легкое и простое исправление - мне, возможно, придется полностью изменить мою реализацию элемента, хотя ... – Thalia