【问题标题】:How to print QString in specific line如何在特定行中打印 QString
【发布时间】:2015-11-18 12:34:16
【问题描述】:

我知道如何通过 QTextLayout 计算 Qt 中的行数。我想分别打印每一行。这是我的代码:

QTextLayout *Layout = getMessageTextLayout(text,option,Width);

for (int j = 0; j < Layout->lineCount(); j++)
{
    QTextLine tl = Layout->lineAt(j);
    for (int k = tl.textStart() ; tl.textLength() ; k++)
    {
            qDebug()<<"text in line = "<<j;
            qDebug()<<text;
    }
}

例如,我有这个QString

*11111 1114 1111111 9111111111323154 6542312312222222 22222222222222212 3123
 12222222 222222 222133 33333333333 33333333 333333 333333333333333 33333333 
3333333333333  3333333 33333331453 4654365464 5645 546 54 6 546 5464 4533243*

我想打印第二行:

12222222 222222 222133 33333333333 33333333 333333 333333333333333 33333333

如何做到这一点?

【问题讨论】:

  • 您的代码中的l 是什么?是不是应该是 tl 的错字?
  • 还有Layout和tempLayout的区别不清楚
  • 我编辑了它@demonplus

标签: c++ qt qstring


【解决方案1】:

您可以使用用于创建 QTextLayout 的 QString;

Layout->text().mid(tl.textStart(), tl.textLength())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 2012-06-04
    • 2017-01-26
    相关资源
    最近更新 更多