QTextEdit занимает все больше времени для рисования текста

Я использую QTextEdit и я обновляю текст (конкретно setHTML) с частотой 1 Гц.

Первоначально setHtml метод быстрый (всего несколько мс); но после 12 часов работы требуется 256 мс для setHTML чтобы вернуться, данные представляют собой простую таблицу с 5 столбцами и 10 строками.

Это увеличение продолжается, чем дольше работает программа.

Кто-нибудь понимает, что происходит? И, что более важно, как я могу остановить это?

В основном то, что я делаю, это:

// get the start time
boost::posix_time::ptime start_time = boost::posix_time::microsec_clock::universal_time();

display->setHtml(text);

boost::posix_time::ptime end_time = boost::posix_time::microsec_clock::universal_time();

boost::posix_time::time_duration time_diff = end_time - start_time;

m_renderTimeDebug = double(time_diff.fractional_seconds() / 1000 );
std::cout << "DRAW TIME; took " << m_renderTimeDebug << " ms " << std::endl;

пример здесь ссылка

2 ответа

Решение

Я обнаружил, что эта проблема была решена в Qt 5.9.

Я предполагаю, что это было найдено ребятами из Qt и исправлено. Я написал дефект по Qt 5.8 QTBUG: 61137

Может быть утечка памяти. Вы выделяете новую память для хранения текста или где-то еще в вашей программе? Вы можете легко узнать, например, с помощью valgrind, используете ли вы Unix-совместимую систему или отладчик. Вы обрабатываете изображение со временем тоже?

Другие вопросы по тегам