MATLAB:如何将字符串变量从函数传递给GUI?

时间:2016-07-26 12:57:14

标签: matlab matlab-figure

例如,我有一个名为function1的函数,它有一个变量,比如str1,它包含一个字符串。

我还使用MATLAB的GUIDE创建了一个GUI,其标签名为textgui,其中静态文本标记为text1

如何将字符串str1传递给GUI,以便在运行GUI时,静态文本text1将显示变量str1的字符串?

编辑:function1将生成字符串str1,然后调用GUI textgui以显示字符串

EDIT2:以下是function1的代码和textgui的图片。

str1 = 'some text here';
textgui; % runs the GUI

below is the image of the GUI <code>textgui</code>.

我应该怎样做,以便在运行function1时,GUI中的静态文本将显示为str1包含的字符串?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

当您设置str1的值时,您只想使用此变量更新静态文本对象的String属性。

str1 = 'my string';
set(handles.text1, 'String', str1)

如果您的function1不是GUI的回调,您可以随时使用findall查找静态文本对象的句柄并将其设置为该方式。

str1 = 'my string';
set(findall(0, 'tag', 'text1'), 'string', str1)

如果您的函数正在初始化textgui,那么您可以将字符串直接传递给GUI函数作为输入参数:

str1 = 'my string';
textgui(str1);

这要求您修改GUIDE定义的textgui_OpeningFcn以处理输入参数(存储在varargin中):

function textgui_OpeningFcn(hObject, eventdata, handles, varargin)
    set(handles.text1, 'String', varargin{1})

    % Leave the other stuff that GUIDE sets alone
end