• 3622阅读
  • 0回复

[提问]怎么计算QGraphicsTextItem里文本的行数 [复制链接]

上一主题 下一主题
离线roundtwo
 

只看楼主 倒序阅读 楼主  发表于: 2015-05-11
各位高手,怎么计算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;
}
快速回复
限100 字节
 
上一个 下一个