我是MATLAB GUI的新用户。我正在尝试添加各种项目,比如说GUI上的静态文本。物品的数量和位置将根据输入进行计算。
A = uicontrol('Style','pushbutton','Position',[0,0,50,50])
此代码添加了一个按钮,但是以这种方式创建后,我不知道如何使用该按钮。这个A是否有自己的句柄或hObject?单击按钮时如何显示MATLAB(“有人按下按钮”)?
谢谢。
答案 0 :(得分:1)
A
是uicontrol
对象。它的属性'callback'
定义了按下按钮时执行的动作。具体来说,该属性可以包含(有关更多详细信息和其他可能性,请参见here)
因此,您可以执行以下任一操作:
(请注意,char矢量符号中的引号通过重复转义):
set(A, 'callback', 'disp(''Someone pressed the button'')')
(请注意,我将{定义为anonymous,并且它不接受任何输入):
dispFun = @()disp('Someone pressed the button')
set(A, 'callback', 'dispFun')
使用这种方法,当按下按钮时,功能必须在作用域内,以便解释器可以找到它。
(请注意,该功能必须接受两个输入):
dispFun = @(o,e)disp('Someone pressed the button')
set(A, 'callback', dispFun)
使用这种方法没有范围限制。函数句柄定义匿名函数本身,该匿名函数将分配给回调。
另一方面,如果函数驻留在文件中,请使用{p>说dispFun_file.m
set(A, 'callback', @dispFun_file)
再次为该函数分配了一个句柄,但是该函数现在位于其他位置。因此,如果函数被修改(或使用clear functions
从内存中删除),则回调将改变。