如何在MATLAB Gui上添加和删除项目

时间:2019-01-25 12:25:17

标签: matlab user-interface

我是MATLAB GUI的新用户。我正在尝试添加各种项目,比如说GUI上的静态文本。物品的数量和位置将根据输入进行计算。

A = uicontrol('Style','pushbutton','Position',[0,0,50,50])

此代码添加了一个按钮,但是以这种方式创建后,我不知道如何使用该按钮。这个A是否有自己的句柄或hObject?单击按钮时如何显示MATLAB(“有人按下按钮”)?

谢谢。

1 个答案:

答案 0 :(得分:1)

Auicontrol对象。它的属性'callback'定义了按下按钮时执行的动作。具体来说,该属性可以包含(有关更多详细信息和其他可能性,请参见here

  1. 一个char向量,它将作为代码执行。
  2. 有时char向量只是对执行实际工作的函数的调用。
  3. 函数handle,将使用两个输入参数调用该函数,指定对象和事件。

因此,您可以执行以下任一操作:

  1. (请注意,char矢量符号中的引号通过重复转义):

    set(A, 'callback', 'disp(''Someone pressed the button'')')
    
  2. (请注意,我将{定义为anonymous,并且它不接受任何输入):

    dispFun = @()disp('Someone pressed the button')
    set(A, 'callback', 'dispFun')
    

    使用这种方法,当按下按钮时,功能必须在作用域内,以便解释器可以找到它。

  3. (请注意,该功能必须接受两个输入):

    dispFun = @(o,e)disp('Someone pressed the button')
    set(A, 'callback', dispFun)
    

    使用这种方法没有范围限制。函数句柄定义匿名函数本身,该匿名函数将分配给回调。

    另一方面,如果函数驻留在文件中,请使用{p>说dispFun_file.m

    set(A, 'callback', @dispFun_file)
    
    再次

    为该函数分配了一个句柄,但是该函数现在位于其他位置。因此,如果函数被修改(或使用clear functions从内存中删除),则回调将改变。