1

Matlab GUI で 2 つのトグル ボタンを作成して、一方が他方を切り替える方法はありますか? つまり、ボタン A がオンの場合、オンにすると A がオフになるボタン B を作成するにはどうすればよいでしょうか。

4

2 に答える 2

1

これは私のコードです:

function button1_Callback(hObject, eventdata, handles)
if get(hObject,'Value')==1

    %do something here

else

    %do something else (in my case delete a video object)

2番目のボタンを配置してコマンドを使用すると

set(handles.button1,'Value',0)

その結果、最初のボタンはトグルしますが、その後のコマンドelseは実行されません。そのコマンドも実行する方法はありますか?

于 2012-11-15T19:28:29.200 に答える
0

バージョン R2009a を使用しているため、これが機能するかどうかはわかりません。

2 つのプッシュ ボタンをguide(デフォルト名で) 定義しました。最初にクリックすると無効になり (有効: オフ)、値が 1 に設定され、文字列がオンに設定されます。2 番目の押しボタンは別の状態に設定されます。他のボタンにも同様の動作が与えられます。

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
set(handles.pushbutton1,'Value',1,'String','On','Enable','Off')
set(handles.pushbutton2,'Value',0,'String','Off','Enable','On')
get(handles.pushbutton1)

% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
set(handles.pushbutton1,'Value',0,'String','Off','Enable','On')
set(handles.pushbutton2,'Value',1,'String','On','Enable','Off')



button1 の状態に応じて button2の動作 を切り替えたい場合は、次のようにします。

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)

% this toggles button1 between 0 and 1 and its label between 'On' and 'Off'
p = 1-get(handles.pushbutton1,'Value');   
set(handles.pushbutton1,'Value',p)
if p==0
    set(handles.pushbutton1,'String','Off')
else
    set(handles.pushbutton1,'String','On')
end



% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)

% Behavior of button2 is dependent on state of button1
p = get(handles.pushbutton1,'Value');

if p==0
    % Do this when button1 has its label to 'Off' (and Value to 0)
else
    % This will execute when button1 has a Value of 1 (and its label showing 'On')
end

これはあなたが必要とするものですか?

于 2012-11-15T18:07:36.290 に答える