如何在matlab中模仿按钮单击

时间:2015-07-07 21:13:35

标签: matlab user-interface

如何模仿matlab中的按钮点击?

简单地排除回调函数不起作用,因为在其回调中它使用gcbo命令,我不能改变执行功能。此外,我还不想因为显而易见的原因而影响gcbo。

如果重要,我会寻找适用于matlab R2012a的解决方案。

2 个答案:

答案 0 :(得分:8)

例如,您可以尝试调用 java.awt.Robot 类。

robot = java.awt.Robot;
pause(2) % wait some time
robot.keyPress (java.awt.event.KeyEvent.VK_ENTER); % press "enter" key
robot.keyRelease (java.awt.event.KeyEvent.VK_ENTER); %  release "enter" key

使用机器人here ...

了解有关GUI自动化的更多信息

我不确定这会在Matlab R2012a上有效,但它会在以后的版本中使用。

答案 1 :(得分:1)

gcbo仅包含按钮手柄。如果您有(或可以检索/查找)按钮句柄,只需使用按钮句柄作为第一个参数调用函数回调,并将空变量作为第二个参数调用。

看起来像这样:

button_callback( buttonHandle , [] ) ;

回调不会对gcbo或按钮句柄产生任何影响,并且功能完全相同。

如果您首先没有按钮手柄,可以尝试使用findobj找到它:

buttonHandle  = findobj(gcf,'Style','PushButton','String','The Button Text')

根据GUI的构建/定义方式,处理可见性可能不会立即显现,在这种情况下,您可以使用findall进行更深入的搜索:

buttonHandle   = findall(gcf,'Style','PushButton','String','The Button Text')

或者可能是手柄很好地保存在guidata结构中:

handles = guidata(gcf) ;

并在结构中搜索可能是您的按钮句柄。

注意:在上面的最后3个示例中,确保在您致电gcf之前,包含该按钮的GUI图形具有焦点,或者更好的是,替换gcf通过实际的数字句柄。