gpt4 book ai didi

performance - 文本区域记录速度慢

转载 作者:行者123 更新时间:2023-12-02 04:19:50 25 4
gpt4 key购买 nike

我有一个 Qt 应用程序,我想显示一些日志。我使用 TextArea。但是,如果日志很大或事件来得太快,GUI 就无法足够快地绘制 Textarea

我已经用 Qt Creator (QML Profiler) 分析了这个问题,如果日志很大,则绘制 GUI 需要 300 毫秒。我在 Raspberry Pi2 上使用这个软件。

有什么想法可以解决这个问题吗?我应该使用其他 QML 控件吗?谢谢。

QML代码:

TextArea {
text: appHandler.rawCommunication
readOnly: true
}

C++ 代码:

Q_PROPERTY(QString rawCommunication READ rawCommunication WRITE setrawCommunication NOTIFY rawCommunicationChanged)

void setrawCommunication(QString val)
{
val.append("\n");
val.append(m_rawCommunication);
m_rawCommunication = val;
emit rawCommunicationChanged(m_rawCommunication);
}

最佳答案

使用 view ,例如 ListView 。他们instantiate their delegates as needed ,基于 View 表示需要显示的数据,具体取决于用户在列表中的位置。这意味着它们在可视化大量数据方面比 TextArea 等项目表现得更好,在您的情况下,这些项目将在内存中保留大量且不断增长的字符串。

您的delegate然后可以是一个 TextArea,这样每个日志行就有一个可编辑的文本 block 。但是,如果您不需要样式,我建议使用更轻的东西,例如 TextEdit 。更进一步:如果您不需要可编辑文本,请使用普通的旧 Text。切换到这些可能不会产生太大的影响,但如果您仍然看到速度缓慢(并且一次有很多委托(delegate)可见),那么值得一试。

关于performance - 文本区域记录速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31345096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com