GUI question:Change data depending on ListBox choice

2 次查看(过去 30 天)
Hi,
I want to change the color of the button "Pass" according to the choice of the listBox as shown by the code below:
function list_VIN_Callback(hObject, eventdata, handles)
if strcmp(get(handles.list_VIN,'String'), '...............< Aucun >.............')
set(handles.Pass, 'BackgroundColor','red');
else
set(handles.Not_Pass, 'BackgroundColor','green');
end;
Is this correct what I wrote as code? it deosn't work!
  2 个评论
Adam
Adam 2017-6-6
You are setting the BackgroundColor of two different buttons in that code, but you only seem to have one button. What is the tag of the 'Pass' button?
Samah EL QASSAH
Samah EL QASSAH 2017-6-6
编辑:Samah EL QASSAH 2017-6-6
Thank you to notify me, I corrected the code
function list_VIN_Callback(hObject, eventdata, handles)
if strcmp(get(handles.list_VIN,'String'), '...............< Aucun >.............')
set(handles.Pass, 'BackgroundColor','red');
else
set(handles.Pass, 'BackgroundColor','green');
end;
When I make a choice VIN1, VIN2 or VIN3 the button "Pass" becomes green but when I chose "....<Aucun>....the" Pass "button does not become red.
%

请先登录,再进行评论。

回答(2 个)

ES
ES 2017-6-6
What is the tag of the pass button? I think you are trying to set both the 'String' and 'BackgroundColor' property. If yes, you are doing it the wrong way. You can only set properties to a object by using its unique tag.

ES
ES 2017-6-6
编辑:ES 2017-6-6
% get(handles.listbox1,'String') returns listbox1 contents as cell array. So the 'if' will not work.
You should instead get the selected content by using
% Hints: contents = cellstr(get(hObject,'String')) returns listbox1 contents as cell array
% contents{get(hObject,'Value')} returns selected item from listbox1
The strcmp should be done on contents{get(hObject,'Value')}

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by