如何在打印图形之前在Matlab中隐藏现有的uicontrol?

时间:2015-02-13 21:17:24

标签: matlab

我正在使用基于Matlab的程序,它可以对一些模型结果进行一些很好的绘制。它在图中添加了uicontrol幻灯片和按钮。我没有在Matlab中使用gui编程,我不需要它,我只想在我的matlab脚本上添加几行来隐藏幻灯片和按钮。我可以从属性编辑器手动完成并设置" Visible" to" off",但我正在阅读Matlab手册,但它没有解释如何检索现有的uicontrol并更改其属性。任何提示?我试了这个没有运气:

b = get(gcf,' uicontrol'); 组(B,'样式''按钮''可见''关闭&#39);

由于

1 个答案:

答案 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的屏幕截图:

enter image description here

在这种情况下,与按钮关联的标记为pushbutton28_ReferenceChannelApply

因此,为了改变我需要使用的任何属性:

set(handles.pushbutton28_ReferenceChannelApply,'Property','value')

编辑2

您可以使用findobj命令在GUI中查找按钮,如下所示:

FindButtons = findobj('Style','push')

将输出这些按钮的句柄数组。然后,您可以使用get命令查询其属性:

get(FindButtons(1))