41
Tamuốnlàkhibấmchuột,sốlầnbấmsẽđượcđếmvàghilại.Trướchết
tagọiguidevàcóđượcmộtlayoutrỗng.VàoPropertyInspector(ôsoạnthảo
thuộctính)vàghi
vàoNamechuỗiʺct1_52ʺvàchấpnhậnthuộctíchTagmặc
địnhcủanólàfigure1;dùngFontchữmặcđịnh,cỡchữ12,bold.Tadùngô
EditTextđểghilạisốlầnbấm.TavàoPropertyInspectorr
ồichọnString.Ta
nhậpvàoônàychuỗiʺSolanbamchuot:0ʺ.TaghivàoôTagchuỗiʺeditmotʺ
và cũng dùng Font chữ mắcđịnh, cỡ chữ 12 và bold. Tiếp theo kéo
Pushbuttonvàolayoutvàsoạn
thảothu ộctínhchonóvớiFontchữmặcđịnh,
cỡchứ12,bold.TrongthuôctínhStringghichuỗiʺBamchuotʺ;ghivàTag
chuỗiʺpushbuttonmotʺ.Nhưvậylàtađãthiếtkếxong.Bâygiờtalưul
ạivới
tênlà
ct1_52.figvàct1_52.m.
Nhiệmvụtiếptheolàghicáclệnhcầnthiếtvàofile
ct1_52.m.Filenày
đãđượcMATLABtựđộngtạora.Taphảithêmvàođócácmãlệnhđểkhi
bấmchuộtthìsốlầnbấmđượcthểhiệntrênôEditText.Tasẽghicácmãlệnh
nàyvàophầ
n:
functionvarargout=pushbuttonmot_Callback(h,eventdata,handles,varargin)
dolệnhcầnđượcthựchiệnkhigọipushbutton.Nộidungcủact1_52.mlà:
)ChuyểnđổitừđộFahrenheitsangđộCelcius:TathiếtkếmộtGUIđể
chuyểnđổinhiệtđộ.Giaodiệncódạngnhưsau:
ThuộctínhcủaLayoutđượcghiName:
ct1_53còncácthuộctínhkhác
làmặcđịnh.
43
Ta dùng hai Frame vớicácTag là frmmot và frame2. Các thuộc tính
khácchấpnhậngiátrịmặcđịnh.
EditTextthứnhấtcócácthuộctínhFontName:Arial,FontSize:demi,
FơntWeight:demi,String:Fahrenheit,Tag:editmotcòncácthuộc
tínhkháclà
mặcđịnh.
Edit Text thứ hai có các thuộc tính FontName: Arial, FontSize: demi,
FơntWeight:demi,String:đểtrống,Tag:edithaicòncácthuộc tínhkháclà
mặcđịnh.
Edit Text thứ ba có các thuộc tính FontName: Arial, FontSize: demi,
FơntWeight:demi,String:Celcius,Tag:editbacòncácthuộctínhkháclàmặc
định.
Edit Text thứ tư có các thuộc tính FontName: Arial, FontSize: demi,
FơntWeight:demi,String:đểtrống,Tag:editboncòncácthuộctínhkháclà
mặcđịnh.
Sau khi
thiết kế xong, lưu nó với tên ct3_18.fig. MATLAB tạo thêm
ct1_53.m.Bâygiờtacầnviếtmãchonó.Nhiệmvụcủađoạnmãlàkhitanhập
nhiệtđộFahrenheitvàoôEdittextthứhaithìtrong ôEditTextthứ4phải
xuấthiệngiátrịnhiệtđộCelcius
tươngứng.Dovậynộidungcủact1_53.mlà:
CáclệnhkháclàdoMATLABtựđộngtạora.
)Dùngsliderđểnhậpsốliệu:Tadùngvídụchuyểnđổinhiệtđộtrên
nhưngbâygiờsẽthêmsliderđểthay đổinhiệtđộđầuvào.Giaodiệnsẽcó
dạng:
Nhưvậytacần5phầntử,trongđócómộtphầntửlàslidervà4phần
tửEditText.
Layout có thuộc tính Name:
ct1_54, còn các thuộc tín h khác ta chấp
nhậngiátrịmặcđịnh.
SlidercóthuộctínhMax:1.0vàMin:0.0.
EditTextthứnh ấtcóthuộctínhFontSize:12,FơntWeight:bold,String:
Fahrenheitcòncácthuộctínhkhácchấp
nhậngiátrịmặcđịnh.
EditTextthứ2cóthuộctínhFontSize:12,FơntWeight:bold,String:để
trống.
Edit Text thứ 3 có thuộc tính FontSize: 12, FơntWeight: bold, String:
Celcius.
45
EditTextthứ4cóthuộctínhFontSize:12,FơntWeight:bold,String:
để
trống.(Cácthuộctínhmàtakhôngnhắcđếncónghĩalàchấpnhậngiátrịmặc
định).
Layoutđượclưuvớitên
ct1_54.fig.
set(handles.edit4,ʹStringʹ,b);%ghivao
odoCelcius
)Xuấtsốliệucólựachọn:Tavẫndùngvídụtrênnhưngbâygiờnhiệt
độ quyđổi có thể được tính theo thang nhiệtđộKenvine, Celcius hay
46
Rankine.Đểcóthểchọnlựata dùngmộttrongcácphươngán:Popupmenu,
Rdiobutton,ListboxhayCheckbox.GiaodiệnkhidùngPopupmenunhưsau:
NhưvậylàtacầnmộtSlider,baEditTextvàmộtPopupmenu.Layout
cóthuộctínhName:
ct13_55.
SlidercóthuộctínhMax:1vàMin:0
Edit Text thứ nhất có thuộc tính FontSize: 12, FơntWeight: bold và
String:Fahrenheit.
EditTextthứhaicóthuộctínhFontSize:12,FơntWeight:boldvàString
đểtrống.
EditTextthứ3
cóthuộctínhFontSize:12,FơntWeight:boldvàStringđể
trống.
Popupmenucóthuộctính FontSize:12,FontWeight:bold.Đểghivào
thuộctínhStringtabấmđúpchuộtvàoiconcủanóvàviết3dòng:Kelvine,
CelciusvàRankine.
Fileđược lưu với tên
ct1_55.fig. Vấnđềcòn lại là viết mã trong file
ct1_55.m.Mãcầnthựchiệnnhận giátrịtừSlider,xemPopupmenunàođược
chọnđểhiểnthịnhiệtđộtươngứng.File
ifchon==1
t=k;
elseifchon==2
t=c;
elseifchon==3
t=r;
end
t=num2str(t);
set(handles.edit3,ʹStringʹ,t);
Tiếptheotaxéttrườnghợpdùnglistbox.ThayvìdùngPopupmenutadùng
Listbox.Cácphầntửkhácvàthuộctínhcủanókhôngthayđổi.Thuộctính
NamecủaLayoutlà
ct1_56.TavàoôStringcủaListboxvàghivàođó3dòng
Kelvine,CelciusvàRankine.Giaodiệnnhưsau:
48
Fileđượclưuvớitênct1_56.fig.Tiếptheoviếtlệnhchoct1_56.m.Tacó
filenàynhưsau:
functionvarargout=ct1_56(varargin)
ifnargin==
fig=openfig(mfilename,ʹreuseʹ);
set(fig,ʹColorʹ,get(0,ʹdefaultUicontrolBackgroundColorʹ));
handles=guihandles(fig);
guidata(fig,handles);
set(handles.edit3,ʹStringʹ,t);
TatiếptụcxétphươngándùngRadiobutton.Giaodiệncódạng:
Ta dùng ba Radiobutton thay cho Listbox. Radiobutton thứ nhất có
thuộc tính FontSize: 12, FơntWeight: bold và String: Rankine. Radiobutton
thứ 2 có thu ộc tính FontSize: 12, FơntWeight: bold và String: Celcius.
Radibutton thứ 3 có thuộc tính FontSize: 12, FơntWeight: bold và
String:
Kelvine.Cácphầntửkhácvàthuộctínhcủachúngvẫnnhưcũ.Layout có
thuộctínhName:
ct1_57.LưuGUIvớitênct1_57.fig.
Tiếptheotaviếtcácmãlệnhtrong
ct1_57.m:
functionvarargout=ct1_57(varargin)
ifnargin==0
fig=openfig(mfilename,ʹreuseʹ);
set(fig,ʹColorʹ,get(0,ʹdefaultUicontrolBackgroundColorʹ));
handles=guihandles(fig);
50
guidata(fig,handles);
ifnargout>0
varargout{1}=fig;
end
elseifischar(varargin{1})
try
chon = 1;
function varargout = radiobutton2_Callback(h, eventdata, handles, varargin)
global chon;
off = [handles.radiobutton1, handles.radiobutton3];