Press button automatically click

5 ビュー (過去 30 日間)
Andre Gomes Bontempo
Andre Gomes Bontempo 2016 年 3 月 25 日
コメント済み: Walter Roberson 2016 年 3 月 25 日
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');

回答 (2 件)

Walter Roberson
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
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.

サインインしてコメントする。


Andre Gomes Bontempo
Andre Gomes Bontempo 2016 年 3 月 25 日
for k = 1:3
buttons(k) = uicontrol('units','normal','style','pushbutton', ...
'pos',[.23+.18*k .02 .16 .08],'fontweight','bold', ...
'callback','homework(get(gco,''string''))');
It's a string

カテゴリ

Help Center および File ExchangeCreating, Deleting, and Querying Graphics Objects についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by