各位高手,怎么计算QGraphicsTextItem里面文本的行数。
QGraphicsTextItem的宽度限定(比如说200像素)。
我自己尝试过textlayout来计算,但是计算出来的行数,和我在程序界面看到的行数不一致。
这里的NoteItem是继承QGraphicsTextItem。这个方法就是用来计算行数的。
int NoteItem::calculatedLineCount()
{
int lineCount = 0;
for(int i = 1; i <= document()->blockCount(); i++)
{
m_textLayout.setText(document()->findBlockByNumber(i).text());
m_textLayout.beginLayout();
while (1) {
QTextLine line = m_textLayout.createLine();
if (!line.isValid())
break;
line.setLineWidth(boundingRect().width());
lineCount += 1;
}
m_textLayout.endLayout();
qDebug() << "line count:" << lineCount;
}
qDebug() << "line count:" << lineCount;
return lineCount;
}