有可能更新不使用drawnow uitextarea呢?

11视图(30天)
你好,
我构建一个应用程序使用这个应用程序设计师,在我的窗口我uitextarea后更新给用户,是这样的:
app.OutputTextArea。值{结束+ 1}= sprintf (“Hello world”);
我也可以编程上滚动的文本区域,这样用户可以看到最新的信息:
滚动(app.OutputTextArea“底”);
然而,如果代码是运行很快许多消息才显示当前任务完成后,此时更新文本区域,而失败的目的给用户一个当前的状态更新。
可以更新文本区域使用调用 drawnow :
drawnow;
但据我所知这个更新 所有 显示的项目,这是一种浪费资源时,唯一改变的是文本区域。
我想只是更新文本区域。
Drawnow不接受一个轴作为输入,所以我不能告诉它要更新的一件事,不过我试过 refreshdata 可以接受一个特定轴输入:
refreshdata (app.OutputTextArea);
然而,这似乎并不为uitextareas工作。
有一个功能我不知道,我想要的吗?或者我应该使用一些其他比uitextarea更新用户吗?
谢谢你的任何建议。
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2023年5月6日在福音18:36
我的理解是,有内部“脏”的旗帜,优化不需要再加工图形对象没有改变(这里有一点要复杂得多,因为显示图形衬底的影响改变。)如果文本区域是唯一改变了的,然后处理drawnow不应该很贵。
我可能是错的内部工作。

登录置评。

答案(1)

图像分析
图像分析 2023年5月6日18:08
据我所知并非那样,除了将暂停(),也只会减慢你的应用。有时我做的是叫drawnow只有每20次迭代
k = 1: 100000
如果快速眼动(k, 20) = = 0
drawnow;
结束
结束
1评论
Neuropragmatist
Neuropragmatist 2023年5月6日18:20
嗯,我不得不使用暂停其他因为我有标签和SelectedTab属性更新得不够快。就像你说的,我真的不想引入一个不必要的停顿会增加时间。
我的问题也不是迭代,只是文本区域与其他情节和绘画 他们 可以是缓慢的。

登录置评。

类别

找到更多的在图形性能帮助中心文件交换

下载188bet金宝搏


释放

R2023a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的