如何模仿matlab中的按钮点击?
简单地排除回调函数不起作用,因为在其回调中它使用gcbo命令,我不能改变执行功能。此外,我还不想因为显而易见的原因而影响gcbo。
如果重要,我会寻找适用于matlab R2012a的解决方案。
答案 0 :(得分:8)
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
通过实际的数字句柄。