我不是GUI程序员,因为很明显。如果有的话,我试图取消制作GUI。我正在使用一个名为art的程序(找到here,如果看起来很有用),它会生成我想要保存的数字和变量。您可以从批处理脚本中调用art,并使其读取其输入的配置文件,这就是我正在做的事情,但您必须在GUI中手动生成并保存其大部分输出(变量和图形)。我喜欢自动化这个过程,但我真的很挣扎。
如果我知道如何强制调用回调函数,我认为我的问题的核心将会得到解决。例如,art showCorr_Callback(hObject, eventdata, handles)
中有一个函数(由GUI中的单选按钮控制)。它有一个执行的测试条件:
if (get(handles.showCorr,'Value') == get(handles.showCorr,'Max'))
我试过插入
mx = get(handles.showCorr,'Max'))
setappdata(handles.showCorr,'Value', mx)
进入我知道执行的函数,即打开函数function art_OpeningFcn(hObject, eventdata, handles, varargin)
。这似乎没有任何效果。如果我知道如何使回调函数执行,也许我可以插入将图形保存到函数中的代码。在Matlab的GUI脚本中,必须有一些东西不断测试GUI中的状态变化。那是什么东西?我怎么能欺骗它以为按下单选按钮?
感谢您的帮助,如果我需要提供更多信息,请告诉我。
答案 0 :(得分:1)
首先,如果您要设置Value
的{{1}},则不会使用setappdata
,因为它只存储任意数据(按键/值对)进入图形对象。您实际上想要设置Value
property。
handles.showCorr
这应该触发分配给set(handles.showCorr, 'Value', get(handles.showCorr, 'Max'))
的任何回调。
如果由于某种原因,这不会触发回调,您可以随时手动触发它。如果您已经知道回调,则可以明确地调用它。
handles.showCorr