У меня есть источник сообщений. Это постоянно испускает сигналы для сообщений журнала. Эти сообщения журнала должны быть визуализированы каким-то образом в пользовательском интерфейсе. Поскольку в пиковых ситуациях много сообщений (до 100 в секунду), это должно произойти достаточно эффективно.Эффективный способ отображения сообщений журнала в UI
Для этого у меня было 2 подхода:
Используя
QTextEdit
- Это не работал хорошо. Использование
insertHtml
и позиционирование курсора заняло много времени. Для этого интерфейс начал быть unreponsive
- Это не работал хорошо. Использование
Использование в
QTableView
с прикрепленнымQAbstractTableModel
- Данные вставляются в модель. Это автоматически обновляет представление. Кроме того,
dataChanged
-сигнал подключен кQTableView::scrollToBottom
, чтобы всегда отображались новые сообщения.
- Данные вставляются в модель. Это автоматически обновляет представление. Кроме того,
К сожалению, оба подхода не работают достаточно эффективно. Второй вариант лучше, но прокрутка вниз требует много ресурсов.
Может ли кто-нибудь помочь мне с лучшим решением для отображения сообщений журнала?
Я думаю, что вы должны сохранять свои сообщения в очереди, и с помощью таймера вы можете отображать сообщения в пользовательском интерфейсе с последнего раза (если вам нужно 1 сек или меньше) –