2016-07-19 1 views
0

私のスクリプトの1つとしてMATLAB GUIを使用しています。私のスクリプトには、式を解く関数を呼び出すStartプッシュボタンがあります。私はそれに3つの数字があります。今のところ私のGUIはうまくいきます。何が起こるかは、ユーザーが必要な入力をした後に「開始」をクリックすると、1つずつ3つの図がポップアップし、図を保存する場所が指定されています。ループが小さいのにループが大きいときには見た目がいいようですが、計算時間が長くなるため、ユーザーが何もできないので、図形のポップアップがユーザーに刺激を与えます。MATLAB GUIのラジオボタンをFigureの可視性として表示ON-OFF

GUIのラジオボタンを導入して、数字の表示を無効にする必要があります。 私は図形( 'Visible'、 'off')を試してみましたが、うまくいきましたが、今はラジオボタンとリンクしたいと思っています。

ラジオボタンのコールバックは次のとおりです。

% --- Executes on button press in checkbox2. 
function checkbox2_Callback(hObject, eventdata, handles) 
% hObject handle to checkbox2 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Hint: get(hObject,'Value') returns toggle state of checkbox2 

誰もがON-OFFプッシュボタンの数字の表示には、このラジオボタンを作成するためのコードをフレームに誰に私を助けることができます:

function Start_Callback(hObject, eventdata, handles) 
% hObject handle to Start (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

あなたのお手伝いを待っています。

if get(handles.checkbox2, 'Value') 
    Visibility = 'on'; 
else 
    Visibility = 'off'; 
end 

は今、あなたのフィギュアを作成します:Visibility彼らの値に応じて

figure('Visible', Visibility) 

あなたStart_Callbackチェックボックス/ラジオボタンの状態を確認し、後で使用するための新しい変数を作成するには

答えて

1

表示されるかどうか

1

あなたの主な問題は、3つの図すべての視認性を設定することです。
特定のFigureの可視性を設定するには、そのFigureを扱い続けることをお勧めします。

私は新しい姿を開くときにFigureハンドルを維持することをお勧めします:

h1 = figure; %Open new figure, and store figure handle in h1
h2 = figure; %Open new figure, and store figure handle in h2
h3 = figure; %Open new figure, and store figure handle in h3

私はGUI OpeningFcg機能に(オープン)の数字を作成するための適切な場所だと思います。あなたのフィギュアを作成することができ、

function guiname_OpeningFcg(hObject, evevntdata, handles, varargin) 
... 
handles.output = hObject; 

guidata(hObject, handles); 
... 

コード行guidata(hObject, handles);後:

、新しいGUIを作成するガイドツールを使用して、MATLABは、以下のコードを生成します。
ストアの図は、後の使用のためのhandles構造にハンドル:可視性を設定するには、次のコードを使用して、コールバック関数で

function guiname_OpeningFcg(hObject, evevntdata, handles, varargin) 
... 
handles.output = hObject; 

guidata(hObject, handles); 

h1 = figure; %Open first figure, and store figure handle in h1 
h2 = figure; %Open second figure, and store figure handle in h2 
h3 = figure; %Open third figure, and store figure handle in h3 

handles.h1 = h1; %Store handle to first figure. 
handles.h2 = h2; %Store handle to second figure. 
handles.h2 = h2; %Store handle to third figure. 

% --- Executes on button press in checkbox2. 
function checkbox2_Callback(hObject, eventdata, handles) 

val = get(handles.checkbox2, 'Value'); 

if (val) 
    vis = 'on'; 
else 
    vis = 'off'; 
end 

set(handles.h1, 'Visible', vis); %Set Visibility of first figure. 
set(handles.h2, 'Visible', vis); %Set Visibility of second figure. 
set(handles.h3, 'Visible', vis); %Set Visibility of third figure. 
+0

はありがとうございます。私はこの方法も試みました。うまくいきましたが、@serialによる方法は最も簡単でした。 –

関連する問題