ラジオボタンが定義されたuibuttongroupがあります。私は対応するプロパティで定義されたUipanelsを持っています。私がしたいのは、1つのラジオボタンをクリックして1つのUipanelを表示させ、次に他のラジオボタンをクリックして他のUipanelを表示させることです。私のコードの抜粋です:ラジオボタンを押したときに値を表示するパネルを作成する
operation_type_1 = uibuttongroup(S.Test, 'Title', 'Operation Type', 'position', [0 0.3 panel_w/2 0.15]);
uicontrol('Parent',operation_type_1, 'Style', 'radiobutton',...
'String', 'invisible',...
'position', [0 0 0 0], 'Tag', 'invisibutton');
uicontrol('Parent',operation_type_1,'Style','radiobutton',...
'String', 'Time Operation',...
'Position', 100*[0.1 flooring(3.5, 'tp') 1.2 0.15], 'Tag', 'timeop1');
uicontrol('Parent',operation_type_1,'Style','radiobutton',...
'String', 'Volume Operation',...
'Position', 100*[0.1 flooring(2.5, 'tp') 1.2 0.15], 'Tag', 'volumeop1');
これは私のボタングループと2つのラジオボタンを定義しています。
と同様にタイムパネル:
それからボリュームパネルを作成するコードを有する
これらは同じ位置にあります。私がしたいのは、 "Time Operation"ラジオボタンをクリックして時間パネルを表示させ、 "Volume Operation"ラジオボタンをクリックするとボリュームパネルが見えるようにすることです。
私はswitch caseステートメントを実行しようとしました。私は間違いはないが、結果は得られない。たとえば、時間と音量パネルのケースステートメントは次のとおりです。
switch str
case 'timeop1'
if U.Value; S.result_panel_time1.Visible = 'On';
else S.result_panel_time1.Visible = 'Off';
end
case 'volumeop1'
if U.Value; S.result_panel_volume1.Visible = 'On';
else S.result_panel_volume1.Visible = 'Off';
end
これを動作させるにはどうすればよいですか?私はGUIDEを使用せず、MATLAB GUIをコーディングしています。私は、コールバックを実装しようとした
UPDATE
は、以下の提案が、私は「関数の定義は、紛失したり、不適切なネストされている。」GETエラー。私timeop1とvolumeop1に私はコールバックを追加しました
function button_callback(U, varargin{2})
switch get(get(operation_type_1, 'SelectedObject'), 'Tag')
case 'timeop1'
if U.Value; S.result_panel_time1.Visible = 'On';
else S.result_panel_time1.Visible = 'Off';
end
case 'volumeop1'
if U.Value; S.result_panel_volume1.Visible = 'On';
else S.result_panel_volume1.Visible = 'Off';
end
end
end
そして "... 'コールバック'、{@pb_call、S}":私は次の関数を使用します。 (私が持っている他のすべての機能は、pb_call.mという.mファイルにあります)。この関数はネストされているようですが、エラーは正確なものを指しています。
私は私はあなたの提案を実施してきた方法で私の質問を更新しました。あなたは修正を提案できますか?これが解決すれば私はあなたの答えを喜んで受け入れるでしょう。 – Morgan