crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как получить реальную высоту строки текста для расчета высоты занимаемой области?
trdm
  опции профиля:
сообщение 30.9.2008, 11:36
Сообщение #1


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


Необходимо расчитать высоту ячейки по имеющемся в неё тексту.
Использую такой очевидный код:
/// Форматирование текста ячейки, одновременно расчет её высоты..
qreal uoReportDoc::doFormatCellText(uoCell* cell, QFont* font, QFontMetricsF& fm, const qreal& collWidth)
{
    qreal cellHeight = 0.0;
    // задачка не из простых...
    QString cellStr = cell->getText();
    if (cellStr.isEmpty())
        return cellHeight;

    int lenAll = cellStr.length();
    QChar chrLS = '\n';
    int pos = cellStr.indexOf(chrLS, 0);

    if (pos != -1){
        QStringList strList = cellStr.split(chrLS);
        cellHeight = fm.height()*strList.size();
    }
    return cellHeight;
}


Выкручиваюсь собственно вот так:
/// Форматирование текста ячейки, одновременно расчет её высоты..
qreal uoReportDoc::doFormatCellText(uoCell* cell, QFont* font, QFontMetricsF& fm, const qreal& collWidth)
{
    qreal cellHeight = 0.0;
    // задачка не из простых...
    QString cellStr = cell->getText();
    if (cellStr.isEmpty())
        return cellHeight;

    int lenAll = cellStr.length();
    QChar chrLS = '\n';
    int pos = cellStr.indexOf(chrLS, 0);

    if (pos != -1){
        QStringList strList = cellStr.split(chrLS);
        ///cellHeight = fm.height()*strList.size();
        cellHeight = (fm.lineSpacing()-fm.descent()) *strList.size() + fm.descent(); <<<<<<<<<<<<<<<<<<<<<<<<<<<
    }
    return cellHeight;
}

Но всеравно чувствую, что это выход через задницу и он даст где-то сбой.

Сообщение отредактировал trdm - 30.9.2008, 11:37
Эскизы прикрепленных изображений
 Р В Р’ Р в‚¬Р В РЎВ˜Р В Р’µР Р…ьшено Р Т‘Р С• 46%
Прикрепленное изображение
484 x 535 (45.38 килобайт)
 Р В Р’ Р в‚¬Р В РЎВ˜Р В Р’µР Р…ьшено Р Т‘Р С• 50%
Прикрепленное изображение
526 x 463 (45.48 килобайт)
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 2.6.2025, 3:33