1) 如何将文本包装在QGraphicsTextItem
中以适合固定的矩形,宽度和高度?
目前,我正在尝试创建一个文本,获取其边界矩形,并调整大小以适应框 - 但我无法实现文本换行。
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