GUI中的数据共享,Matlab



现在我正在开发一个带有弹出窗口的GUI,所以实际上它是一个包含多个GUI的工作包。

我已经通读了帮助文件(changme和toolpalette)中给出的示例,但我未能使方法动画化以将数据从新方法传输回旧方法。

这是我的问题。

我有两个gui, A,主gui和B,我用它来收集输入数据,我想把数据传回B。

问题1:

我想定义A中的句柄的新子类。让说,handles.newclass我如何定义它的属性,例如:"字符串"?

问题2:

在A中,按钮具有回调

B('A', handles.A);

所以我们激活B.fig

在完成B的工作后,它在B(!)

中收集了以下数据(字符串和双精度)
title_1 itle_2 ... title_n

num_1 num_2 ... num_n

我想把数据传回给a。

按照指示,我编写了如下所示的代码:

    mainHandles = guidata(A);
title = mainHandles.title_1;
set(title,'String',title_1);

然而,当我回到A时,A中的句柄根本没有改变。

请谁来帮帮我。

谢谢!

============= 更新 ================

我发现的解决方案是添加额外的变量(例如handles. guidata)来处理一个GUI的处理结构,并且每当需要数据时,只需从相应的GUI读取它们。它对我来说很好用,因为我有一个主控制面板和几个子gui。

这里有一个关于这个问题的简短讨论。

我有类似的问题,我希望外部批处理脚本实际控制我的GUI应用程序,但没有理由两个GUI不能做同样的事情。

我创建了一个Singleton对象,当GUI应用程序启动时,它获得对Singleton控制器的引用,并将适当的GUI句柄设置到对象中以供以后使用。一旦Singleton有了句柄,它就可以使用set和get函数向它有句柄的任何gui控件提供或交换数据。系统中的任何函数/回调都可以获得singleton的句柄,然后调用该singleton上的例程,这些例程将允许交换数据甚至运行控制操作。例如,您的GUI A可以向控制器请求GUI B的字段X中的值,甚至可以根据需要直接修改该值。它非常灵活。

在您的情况下,如果GUI A或B消失,请确保使任何句柄无效,并在获取或修改任何值之前测试该GUI组件是否实际存在。只要Matlab本身还在运行,Singleton对象甚至可以在应用程序的多次调用中存活下来,所以如果你不想要过时的信息,请确保在退出时进行清理。

http://www.mathworks.com/matlabcentral/fileexchange/24911-design-pattern-singleton-creational

关于问题2,看起来您忘记在设置标题时首先指定图A应该是激活的。解决这个问题,其他的一切看起来都很好(至少,你发布的小片段)。

相关内容

  • 没有找到相关文章

最新更新