Russian Qt Forum
Ноябрь 24, 2024, 01:44
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
2D и 3D графика
>
QPainter drawText и потребление памяти.
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QPainter drawText и потребление памяти. (Прочитано 8253 раз)
Ubuntu_linux
Гость
QPainter drawText и потребление памяти.
«
:
Октябрь 30, 2011, 16:47 »
На QImage пишу текст пейнтером, где-то на страничку А4 текста память утекает на 1 МБ, что делать?
«
Последнее редактирование: Ноябрь 14, 2011, 20:52 от Пантер
»
Записан
andrew.k
Гость
Re: QPainter drawText засервет память?
«
Ответ #1 :
Октябрь 30, 2011, 19:01 »
что-то у тебя все с памятью проблемы)
Записан
Ubuntu_linux
Гость
Re: QPainter drawText засервет память?
«
Ответ #2 :
Октябрь 30, 2011, 22:51 »
Цитата: andrew.k от Октябрь 30, 2011, 19:01
что-то у тебя все с памятью проблемы)
На мобильных платформах каждый мегабайт на счету!
Меняю размер шрифта QFont в пейнтера и меняется результат в памяти, причем чем больше шрифт, тем меньше памяти.
Что делать непойму, может во всем виноват QImage?
Записан
andrew.k
Гость
Re: QPainter drawText засерает память?
«
Ответ #3 :
Октябрь 30, 2011, 23:24 »
Может это нормально?
Интуитивно кажется, что да. Может шрифтовые литералы перед отрисовкой в битмапы преобразуются?
Записан
Ubuntu_linux
Гость
Re: QPainter drawText засерает память?
«
Ответ #4 :
Октябрь 31, 2011, 00:10 »
так а куда память уходит?
«
Последнее редактирование: Октябрь 31, 2011, 01:29 от Ubuntu_linux
»
Записан
andrew.k
Гость
Re: QPainter drawText засерает память?
«
Ответ #5 :
Октябрь 31, 2011, 00:21 »
ну вообще да.
Остается смотреть исходники и выяснять.
Записан
Ubuntu_linux
Гость
Re: QPainter drawText засерает память?
«
Ответ #6 :
Октябрь 31, 2011, 01:33 »
Вот такой баг нашел по этому поводу:
https://bugreports.qt.nokia.com/browse/QTBUG-21222
Записан
andrew.k
Гость
Re: QPainter drawText засерает память?
«
Ответ #7 :
Октябрь 31, 2011, 02:05 »
Ну вот следовало ожидать.
А у тебя какая версия? Там кто-то пишет, что в 4.7.3 бага нет.
Записан
Ubuntu_linux
Гость
Re: QPainter drawText засерает память?
«
Ответ #8 :
Октябрь 31, 2011, 02:11 »
Цитата: andrew.k от Октябрь 31, 2011, 02:05
Ну вот следовало ожидать.
А у тебя какая версия? Там кто-то пишет, что в 4.7.3 бага нет.
4.7.4
Качаю 4.7.3 , посмотрю как будет на старой версии работать.
«
Последнее редактирование: Октябрь 31, 2011, 02:14 от Ubuntu_linux
»
Записан
Ubuntu_linux
Гость
Re: QPainter drawText засерает память?
«
Ответ #9 :
Октябрь 31, 2011, 02:57 »
Все по старому
даже хуже.
Записан
andrew.k
Гость
Re: QPainter drawText засерает память?
«
Ответ #10 :
Октябрь 31, 2011, 03:12 »
Может попробовать другой из нескольких вариантов drawText?
Хотя скорее всего все подобным образом должны работать.
Записан
Ubuntu_linux
Гость
Re: QPainter drawText засерает память?
«
Ответ #11 :
Октябрь 31, 2011, 13:30 »
А какая есть альтернатива? может каким-то другим образом...
Записан
andrew.k
Гость
Re: QPainter drawText засерает память?
«
Ответ #12 :
Октябрь 31, 2011, 13:40 »
Я имел ввиду использовать один из вариантов drawText. Там их штук 8.
Но шанс на успех 0,4%.
Если бы у меня было время заниматься. И если это достаточно важно для проекта, то я бы взял исходник QPainter.
И стал бы искать ошибку. И потом бы использовал свой исправленный QPainter.
Странно на самом деле. Довольно явная бага же. Почему ее до сих пор не поправили?
А может это и не бага совсем, может просто это позже произойдет?
Еще такой эксперимент, выполнить эту функцию использующую drawText 10 раз к примеру. Или еще больше.
Если есть утечка, то 1 метр превратится в соответствующее количество.
А если так и останется 1 метр, то может так и надо? Может там кешируется что-нибудь?
Записан
_OLEGator_
Гость
Re: QPainter drawText засерает память?
«
Ответ #13 :
Октябрь 31, 2011, 13:57 »
Попробуй так:
Код
C++ (Qt)
QPainterPath
::
addText
(
)
;
QPainter
::
fillPath
(
)
;
QPainter
::
drawPath
(
)
;
Не по теме: таким способом текст рисуется быстрее
Записан
Ubuntu_linux
Гость
Re: QPainter drawText засерает память?
«
Ответ #14 :
Октябрь 31, 2011, 14:48 »
Цитата: _OLEGator_ от Октябрь 31, 2011, 13:57
Попробуй так:
Код
C++ (Qt)
QPainterPath
::
addText
(
)
;
QPainter
::
fillPath
(
)
;
QPainter
::
drawPath
(
)
;
Не по теме: таким способом текст рисуется быстрее
Попробовал, таким методом рисует в 2-3 раза меднение. А результат в памяти такой же...
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...