Press button automatically click
5 ビュー (過去 30 日間)
古いコメントを表示
I'm modifing a code, and I want to use a function that make the code automatically press a button. I searched in mathworks but didn't find anything
for k = 1:3
buttons(k) = uicontrol('units','normal','style','pushbutton', ...
'pos',[.23+.18*k .02 .16 .08],'fontweight','bold', ...
'callback');
0 件のコメント
回答 (2 件)
Walter Roberson
2016 年 3 月 25 日
You can retrieve the callback property and invoke the associated function. The way of doing that depends upon whether the property is a string or a function handle or cell array (the first member of which would be a function handle.) You did not show what you were going to populate the callback property with.
Example:
cb = get(buttons(1), 'callback'); %function handle case
cb(buttons(1), []) %invoke it passing the handle of the control
1 件のコメント
Walter Roberson
2016 年 3 月 25 日
For string callbacks, you would usually use
cb = get(buttons(1), 'callback');
evalin('base', cb)
However, your string uses cbo. Fortunately, at least up to R2014a, that can be faked out:
cb = get(buttons(1), 'callback');
fig = ancestor(buttons(1), 'figure');
figure(fig); %need to make it the current figure
set(fig, 'CurrentObject', buttons(1)) %and update gco
evalin('base', cb)
Now, if you need gcbo to also be set, then you are going to have to get into Java Robot class to simulate a click on the button.
参考
カテゴリ
Help Center および File Exchange で Creating, Deleting, and Querying Graphics Objects についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!