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-совместимую систему или отладчик. Вы обрабатываете изображение со временем тоже?