получить размер каждой строки в QTextEdit

Привет, я новичок в программировании Qt, и я хочу знать, как получить размер каждой строки в QTextEdit.

Обновление:
Мне нужно получить ширину каждой строки (строки) в тексте, а не ширину всего текста в QTextEdit.


person João Maiorchini    schedule 07.11.2012    source источник
comment
Вы имеете в виду размер в символах? Пиксели? PS: не извиняйтесь за свой английский.   -  person Anthony    schedule 07.11.2012
comment
QTextEdit, а точнее QTextDocument, отображаемый QTextEdit, на самом деле не имеет строк, у него есть блоки. Так да, уточните пожалуйста вопрос, какого именно размера, чего именно и для какой цели вы хотите?   -  person hyde    schedule 07.11.2012


Ответы (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);
}
person tro    schedule 07.11.2012
comment
Извините за задержку. Так что на самом деле мне нужно получить ширину каждой строки (строки) в тексте, а не ширину всего текста в QTextEdit. Спасибо за помощь и еще раз извините. С Уважением. - person João Maiorchini; 13.11.2012
comment
Какое значение вы хотите получить — количество символов, количество пикселей (как указано выше)? - person tro; 13.11.2012
comment
Попробуйте разбить весь текст на строки по символу '\n' и подсчитать длину каждой строки. - person tro; 13.11.2012