Название: drawText (QT/E 2.3.10) Отправлено: agaf от Январь 25, 2006, 12:56 Пытаюсь акселлерировать метод отрисовку текста (QGfxMy::drawText). Выводимый текст не обрезается (например, заголовок окна может вылезти за пределы самого окна). При этом стандартный QGfxRasterBase::drawText делает все правильно, хотя в нем я не нашел ничего, что могло бы контроллировать длину выводимой строки. Вопрос: каким образом Qt производит обрезку строки до нужной длины?
Qt/Embedded 2.3.10, Linux Название: drawText (QT/E 2.3.10) Отправлено: Dendy от Январь 25, 2006, 13:58 Наверное с помощью QFontMetrics::width QFontMetrics::size QFontMetrics::boundingRect.
Название: drawText (QT/E 2.3.10) Отправлено: agaf от Январь 25, 2006, 14:58 QFontMetrics::width - это ширина полной строки. А вот с чем (и где) сравнивается эта ширина для определения длины обрезанной строки (если полная не помещается в компонент)?
Название: drawText (QT/E 2.3.10) Отправлено: Steven_Orko от Январь 25, 2006, 16:54 Эта функция называется qt_format_text(). Используется для внутренних нужд Qt, как я понял. Можешь посмотреть, например, исходник
QSize QItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; Код: QSize QItemDelegate::sizeHint(const QStyleOptionViewItem &option, Как я понял в процессе трассировки проги, эта функция делает то, что тебе надо. Возможно ошибаюсь. Название: drawText (QT/E 2.3.10) Отправлено: agaf от Январь 26, 2006, 17:51 Разобрался. Дело в том, что глифы букв копируются функцией blt. Если приемник находится вне cliprects, копирование просто не производится.
|