gpt4 book ai didi

qt - 如何在 QGraphicsItem 中换行文本?

转载 作者:行者123 更新时间:2023-12-03 02:41:30 40 4
gpt4 key购买 nike

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 子类中的文本包装为非矩形的形状? enter image description here

(如上图所示)
我尝试使用 clipRegion,请参阅上面的代码,但我想这不是正确的方法,剪切会剪切文本但不会换行。

也许会...如果我首先能弄清楚如何换行?

Qt 4.8

最佳答案

您没有指定 Qt 版本,但请尝试:

void QGraphicsTextItem::setTextWidth(qreal width)

Sets the preferred width for the item's text. If the actual text is wider than >the specified width then it will be broken into multiple lines.

If width is set to -1 then the text will not be broken into multiple lines >unless it is enforced through an explicit line break or a new paragraph.

The default value is -1.

关于qt - 如何在 QGraphicsItem 中换行文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30895157/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com