使用GUI进行图像界面的绘制:
用file--new--GUI,创建fig文件,系统有四个模板可供选择。在控件拖拉模式下,可查看每个控件的事件。
用guide filename对已经存在fig文件进行绘制,同时会生成对应的.m的function文件,但是没有办法导出界面设计的源码。所以需要源码的只能手动编写。
编写GUI的界面:
screensize = get( 0, 'screensize');
dlgPosition = [ 0, 0, 1000, 1000]; %dlgPosition = [ 0, 0, 454, 393];
dlgPosition(1) = ( screensize(3) - dlgPosition(3) ) / 2;
dlgPosition(2) = ( screensize(4) - dlgPosition(4) ) / 2;
obj.hdialog = dialog('Unit', 'pixels', 'WindowStyle', 'modal', 'Name', ...
'Calculate Attributes...', 'Position', dlgPosition, 'Visible', 'off' );
设置屏幕的位置大小、最外面的对话框hdialog。
keyboardPanel = uipanel( 'Unit','pixels','Title','Keyboard', ...
'position',[43 324 241 520],'parent',obj.hdialog );
uicontrol('Unit','pixels','position',[3 450 50 50],'style','pushbutton', ...
'parent',keyboardPanel,'String','(','Tag','keyboard(button', ...
'callback',@obj.pushkeyboard);
uicontrol('Unit','pixels','position',[63 450 50 50],'style','pushbutton', ...
'parent',keyboardPanel,'String',')','Tag','keyboard)button', ...
'callback',@obj.pushkeyboard);
在框中放入panel,在panel中放入pushbutton等控件,这些控件的position是相对父panel而言的,相同的,子框的position也是相对父框的。
position的计算是以左下角为坐标系的原点,position的四个参数,第一个参数是控件的左起点,第二参数是控件的下起点,也是以左下角作为起点,第三个参数是长度,第四个参数是宽度。
定义了callback函数是事件调用函数。该函数可在主类函数中进行详细定义。可在主类中创建生成该界面的函数,并在主类中定义界面的回调函数。