首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新GUI图形,并在刷新过程中考虑GUI修改(文本、编辑、弹出图标控制)

刷新GUI图形,并在刷新过程中考虑GUI修改(文本、编辑、弹出图标控制)
EN

Stack Overflow用户
提问于 2016-05-30 11:59:47
回答 1查看 57关注 0票数 0

我今天来这里是因为我要在Matlab2007b上开发一个图形用户界面(带向导),其中我控制了一些电子设备(示波器、功能发生器=>频率、时差、触发器等等),在这个界面中,我在示波器屏幕上得到了曲线显示,并将它们显示在我的图形用户界面上。示波器根据触发器刷新信号,我知道我不能在GUI上做同样的事情(从示波器获取信号的时间比触发周期要长)。

我希望接下来的事情是:我打开我的GUI,启动一个无限的What循环,在这个循环中,我调用在我的轴上刷新我的曲线的函数(所以从示波器获取信号,并更新斧头)并且每次刷新都是可能的。但是,我也希望用户能够始终与我的GUI交互:改变发生器上信号的频率,改变示波器的时间基等等。不幸的是(但逻辑上),当我启动我的while循环时,我不能再用我的GUI做任何事情了。

有可能做到吗?与我的GUI交互,并调用与用户交互的对象相关的回调函数,哪里有执行的“后台”函数?为了获得信息,我刷新了我的图表,通过以太网链接从示波器获取数据。

也许是关于对象的BusyAction和可中断值?或者也许只有计时器才有可能?我以前从来没有做过这样的事情,所以我在网上寻找信息,但这似乎有点复杂。

只要一点建议就能解锁我。我预先感谢你的帮助。

如果我没有给出足够的信息,就毫不犹豫地告诉我。

PS:这里有我的图形用户界面和斧头,在上面有2条曲线,我想刷新一次是可能的。

GUI的第一个选项卡

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-30 13:30:47

要做到这一点,唯一可靠的方法是使用计时器定期轮询示波器和更新您的情节。然后,当计时器不执行时,任何人都可以与GUI中的任何控件交互。

代码语言:javascript
复制
t = timer('TimerFcn', @checkOscilloscope, 'ExecutionMode', 'FixedRate', 'Period', 0.1);
start(t);

function checkOscilloscope(tmr, evnt)
    % Do your check of the oscilloscope here

    % Update plots

    % Force a redraw
    drawnow
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37525155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档