hi guys, I have a push button and I want that when I click on it another push button will appear and if I click a second time so other push button appear etc.... I need your help because i'm really lost and I need to know how to do it thanks

답변 (1개)

Geoff Hayes
Geoff Hayes 2014년 7월 9일

2 개 추천

I'll assume that you are using GUIDE to build your GUI.
Suppose that you have two push buttons named pushbutton1 and pushbutton2. When your GUI launches, only the first button is visible. To hide the second button, in your GUI's yourGuiName_OpeningFcn function, add the following code
set(handles.pushbutton2,'Visible','off');
yourGuiName is the name of your GUI. The above line of code hides the push button.
Now in the GUI editor, select the first push button and from the menu, select View --> View Callbacks --> Callback. The following code should appear in the MATLAB m file editor
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
In the body for this function, just add
set(handles.pushbutton2,'Visible','on');
Now run the GUI. You will observe that only the first push button is visible. Press it, and the second will appear.
To allow for another push button to appear on the second press of the first button (which I think is also part of your question), you will need to track the number of times that the button is pressed.
Let us assume that there is a third push button named pushbutton3. In yourGuiName_OpeningFcn function, modify the body so that it looks like
% Choose default command line output for untitled2
handles.output = hObject;
% initialize the counter for number of times pressed for button 1
handles.button1PressCount = 0;
% Update handles structure
guidata(hObject, handles);
set(handles.pushbutton2,'Visible','off');
set(handles.pushbutton3,'Visible','off');
In the above, we added some user-defined data to the handles object in the form of a counter of the number of times that the first push button has been pressed. We then save this data using the guidata(hObject, handles); call. Order is important here! We then hide the third push button.
In the callback to the first push button, modify its body as follows
% increment the counter for the press count for this button
handles.button1PressCount = handles.button1PressCount + 1;
% save the data
guidata(hObject, handles);
if handles.button1PressCount==1
set(handles.pushbutton2,'Visible','on');
elseif handles.button1PressCount==2
set(handles.pushbutton3,'Visible','on');
end
So we increment the counter for the number of times the button has been pressed and then save the data using guidata. The if/elseif is then used to determine which button to reveal.
Try the above and see what happens!

댓글 수: 5

Jihad Chamseddine
Jihad Chamseddine 2014년 7월 9일
finally it works!!!! thank you very much hope to be able to ask you later if i have other questions and I think I will because it is a heavy project and thank you another time
Jihad Chamseddine
Jihad Chamseddine 2014년 7월 10일
so now I have six push buttons, what if I want to delete or do not make visible those push buttons.So I made a new push button and called it "Delete Button" and I want when I click on the "Delete Button" to delete the push button that I want and not necessary in order, can that be done?
Geoff Hayes
Geoff Hayes 2014년 7월 11일
By delete do you really mean hide? Yes, I'm sure you hide various button in whichever order you wish as long as you decide on the correct logic.
Jihad Chamseddine
Jihad Chamseddine 2014년 7월 11일
yes I want to hide them and in the order that the user may want, so do you have any idea how to do that?
Geoff Hayes
Geoff Hayes 2014년 7월 11일
How would you allow the user to select which buttons to hide? What is the use case behind this?

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Desktop에 대해 자세히 알아보기

태그

질문:

2014년 7월 9일

댓글:

2014년 7월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by