我正在使用基于Matlab的程序,它可以对一些模型结果进行一些很好的绘制。它在图中添加了uicontrol幻灯片和按钮。我没有在Matlab中使用gui编程,我不需要它,我只想在我的matlab脚本上添加几行来隐藏幻灯片和按钮。我可以从属性编辑器手动完成并设置" Visible" to" off",但我正在阅读Matlab手册,但它没有解释如何检索现有的uicontrol并更改其属性。任何提示?我试了这个没有运气:
b = get(gcf,' uicontrol'); 组(B,'样式''按钮''可见''关闭&#39);
由于
答案 0 :(得分:1)
您只需要从句柄结构访问该元素并从那里更改其属性。
例如,如果按钮存储在句柄结构中,如下所示:
handles.b %// Whatever name you gave it and see in the Property Inspector
您可以使用命令
使其不可见set(handles.b,'Visible','off')
同样适用于所有其他财产。
小技巧:如果需要重复打开和关闭GUI的元素,可以将它们放在一个句柄数组中,例如在GUI的Opening_Fcn
中,并使用此数组一次更改所有句柄GUI中的任何位置。这样你就不必一个一个地称呼它们,这可能很乏味。
示例:
handles.AllButtons = [handles.button1; handles.button2; handles.button3]
这包含3个按钮的手柄。现在,如果你需要同时关闭/打开它们,你可以这样做:
set(handles.AllButtons,'Visible','off')
而不是
set(handles.button1,'Visible','off')
set(handles.button2,'Visible','off')
set(handles.button3,'Visible','off')
从GUIDE中,您可以在Property Inspector中检查任何uicontrol组件的实际名称。以下是我使用GUIDE制作的GUI的屏幕截图:
在这种情况下,与按钮关联的标记为pushbutton28_ReferenceChannelApply
。
因此,为了改变我需要使用的任何属性:
set(handles.pushbutton28_ReferenceChannelApply,'Property','value')
编辑2
您可以使用findobj
命令在GUI中查找按钮,如下所示:
FindButtons = findobj('Style','push')
将输出这些按钮的句柄数组。然后,您可以使用get
命令查询其属性:
get(FindButtons(1))