【问题标题】:get size of each row in QTextEdit获取 QTextEdit 中每一行的大小
【发布时间】:2012-11-07 12:41:17
【问题描述】:

您好,我是 Qt 编程新手,我想知道如何获取 QTextEdit 中每一行的大小。

更新
我需要获取文本中每一行(行)的宽度,而不是 QTextEdit 中所有文本的宽度。

【问题讨论】:

  • 你的意思是字符大小吗?像素? PS:不要为你的英语道歉。
  • QTextEdit,或者更确切地说是 QTextEdit 显示的 QTextDocument,实际上没有行,它有块。所以,是的,请澄清这个问题,你想要什么样的大小,以及出于什么目的?

标签: c++ qt qtextedit


【解决方案1】:

更新

如果您想获取QTextEdit 中每个字符串的像素大小(宽和高)和长度,您可以这样做:

// split all text into list of strings by separator '\n' (new line symbol)
QStringList strLst = ui->textEdit->toPlainText().split('\n');
// gather font metrics in QTextEdit
QFont textEditFont = ui->textEdit->font();
QFontMetrics fm(textEditFont);
foreach (QString str, strLst)
{
    int pixelsWide = fm.width(str);
    int pixelsHigh = fm.height();
    qDebug() << QString("Row: %1:\n\tsymbols count = %2,\tpixels wide = %3,"
             "\tpixels high = %4")
                .arg(str)
                .arg(str.length())
                .arg(pixelsWide)
                .arg(pixelsHigh);
}

【讨论】:

  • 抱歉耽搁了。所以实际上我需要获取文本中每一行(行)的宽度,而不是 QTextEdit 中所有文本的宽度。感谢您的帮助,再次抱歉。问候。
  • 你希望得到什么样的值——符号数、像素数(如上)?
  • 尝试通过符号 '\n' 将所有文本拆分为字符串,并计算每个字符串的长度。
猜你喜欢
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
相关资源
最近更新 更多