Checkboxlar aynı anda birden fazla secimin yapılabildiği uygulamaalrda kullanılmaktadır. Checkbox un secili olma durumu 1 secili olmama durumunda degeri 0 olarak belirlenir. Örnegimizde kodların cok fazla uzamaması için sadece 3 checkbox ile sonuç üretilmistir.
Figür yüzeyine 2 static text ve 3 tanede checkbox u yerlestirip asagıdaki sekilde görülen ayarlamaları yapın.
Bu ayarlamaları yaptıktan sonra bunu checkbox.fig olarak kaydedin. Karşımıza çıkan m-function
dosyasını asağıdaki gibi kodlayın.
Programın son hali asagıdaki gibidir.
Figür yüzeyine 2 static text ve 3 tanede checkbox u yerlestirip asagıdaki sekilde görülen ayarlamaları yapın.
Bu ayarlamaları yaptıktan sonra bunu checkbox.fig olarak kaydedin. Karşımıza çıkan m-function
dosyasını asağıdaki gibi kodlayın.
function varargout = checkbox(varargin)
% CHECKBOX Application M-file for checkbox.fig
% FIG = CHECKBOX launch checkbox GUI.
% CHECKBOX('callback_name', ...) invoke the named callback.
if nargin == 0 % LAUNCH GUI
fig = openfig(mfilename,'reuse');
% Use system color scheme for figure:
set(fig,'Color',get(0,'defaultUicontrolBackgroundColor'));
% Generate a structure of handles to pass to callbacks, and store it.
handles = guihandles(fig);
guidata(fig, handles);
if nargout > 0
varargout{1} = fig;
end
elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK
try
[varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard
catch
disp(lasterr);
end
end
%| ABOUT CALLBACKS:
%| GUIDE automatically appends subfunction prototypes to this file, and
%| sets objects' callback properties to call them through the FEVAL
%| switchyard above. This comment describes that mechanism.
%|
%| Each callback subfunction declaration has the following form:
%| (H, EVENTDATA, HANDLES, VARARGIN)
%|
%| The subfunction name is composed using the object's Tag and the
%| callback type separated by '_', e.g. 'slider2_Callback',
%| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'.
%|
%| H is the callback object's handle (obtained using GCBO).
%|
%| EVENTDATA is empty, but reserved for future use.
%|
%| HANDLES is a structure containing handles of components in GUI using
%| tags as fieldnames, e.g. handles.figure1, handles.slider2. This
%| structure is created at GUI startup using GUIHANDLES and stored in
%| the figure's application data using GUIDATA. A copy of the structure
%| is passed to each callback. You can store additional information in
%| this structure at GUI startup, and you can change the structure
%| during callbacks. Call guidata(h, handles) after changing your
%| copy to replace the stored original so that subsequent callbacks see
%| the updates. Type "help guihandles" and "help guidata" for more
%| information.
%|
%| VARARGIN contains any extra arguments you have passed to the
%| callback. Specify the extra arguments by editing the callback
%| property in the inspector. By default, GUIDE sets the property to:
%| ('', gcbo, [], guidata(gcbo))
%| Add any extra arguments after the last argument, before the final
%| closing parenthesis
% --------------------------------------------------------------------
function varargout = checkbox1_Callback(h, eventdata, handles, varargin)
% Stub for Callback of the uicontrol handles.checkbox1.
global durum1
global durum2
global durum3
sd1=findobj(gcbf,'Tag','checkbox1');
durum1=get(sd1,'value');
sd2=findobj(gcbf,'Tag','checkbox2');
durum2=get(sd2,'value')
sd3=findobj(gcbf,'Tag','checkbox3');
durum3=get(sd3,'value')
str=findobj(gcbf,'Tag','text2');
if durum1==1 & durum2==0 & durum3==0
set(str,'string','kopek');
elseif durum1==1 & durum2==1 & durum3==0
set(str,'string','kopek ve kedi');
elseif durum1==1 & durum2==1 & durum3==1
set(str,'string','kopek,kedi ve kus');
elseif durum1==0 & durum2==1 & durum3==0
set(str,'string','kedi');
elseif durum1==0 & durum2==1 & durum3==1
set(str,'string','kedi,kus');
elseif durum1==0 & durum2==0 & durum3==1
set(str,'string','kus');
elseif durum1==1 & durum2==0 & durum3==1
set(str,'string','kopek ve kus');
end
end
end
end
end
end
end
% --------------------------------------------------------------------
function varargout = checkbox2_Callback(h, eventdata, handles, varargin)
% Stub for Callback of the uicontrol handles.checkbox2.
global durum1
global durum2
global durum3
sd1=findobj(gcbf,'Tag','checkbox1');
durum1=get(sd1,'value');
sd2=findobj(gcbf,'Tag','checkbox2');
durum2=get(sd2,'value')
sd3=findobj(gcbf,'Tag','checkbox3');
durum3=get(sd3,'value')
str=findobj(gcbf,'Tag','text2');
if durum1==1 & durum2==0 & durum3==0
set(str,'string','kopek');
elseif durum1==1 & durum2==1 & durum3==0
set(str,'string','kopek ve kedi');
elseif durum1==1 & durum2==1 & durum3==1
set(str,'string','kopek,kedi ve kus');
elseif durum1==0 & durum2==1 & durum3==0
set(str,'string','kedi');
elseif durum1==0 & durum2==1 & durum3==1
set(str,'string','kedi,kus');
elseif durum1==0 & durum2==0 & durum3==1
set(str,'string','kus');
elseif durum1==1 & durum2==0 & durum3==1
set(str,'string','kopekve kus');
end
end
end
end
end
end
end
% --------------------------------------------------------------------
function varargout = checkbox3_Callback(h, eventdata, handles, varargin)
% Stub for Callback of the uicontrol handles.checkbox3.
global durum1
global durum2
global durum3
sd1=findobj(gcbf,'Tag','checkbox1');
durum1=get(sd1,'value');
sd2=findobj(gcbf,'Tag','checkbox2');
durum2=get(sd2,'value')
sd3=findobj(gcbf,'Tag','checkbox3');
durum3=get(sd3,'value')
str=findobj(gcbf,'Tag','text2');
if durum1==1 & durum2==0 & durum3==0
set(str,'string','kopek');
elseif durum1==1 & durum2==1 & durum3==0
set(str,'string','kopek ve kedi');
elseif durum1==1 & durum2==1 & durum3==1
set(str,'string','kopek,kedi ve kus');
elseif durum1==0 & durum2==1 & durum3==0
set(str,'string','kedi');
elseif durum1==0 & durum2==1 & durum3==1
set(str,'string','kedi,kus');
elseif durum1==0 & durum2==0 & durum3==1
set(str,'string','kus');
elseif durum1==1 & durum2==0 & durum3==1
set(str,'string','kopek ve kus');
end
end
end
end
end
end
end
Burada tek bir checbox için yazılan kodların hepsi diğer checboxlar içinde aynıdır.Kodlar açıklanırsa durum1 durum2 ve durum3 global değiskenler olmak üzere durum1 e checkbox1 in o anki degeri durum2 ye checkbox2 nin o anki degeri ve durum3 e ise checkbox un o anki degeri atanmıstır. Yani checkbox ların secili olup olmamasına göre durum degiskenleri 1 veya 0 degerini alıyorlar. Buna göre bir secme algoritması olusturuyoruz if else if yapısı ile durum degiskenlerinin alacagı bütün durumlar ve bunlara karsılık gelen secimler ekrana yazdırılıyor. Her if içinde bir end blogu ekliyoruz.Programın son hali asagıdaki gibidir.