matlab gui制作,MATLAB GUI制作教程

因为工作需要,自己摸索过matlab的GUI制作,也做了好几个GUI工具,主要就是用来数据回放,分析分析,下面我分享一下经验,与各位朋友共同进步。

1。命令行输入guide -> 选中Blank GUI-> 确定进入gui界面。

matlab gui制作,MATLAB GUI制作教程_第1张图片2。上面横栏是菜单区域,左边竖栏是控件区域。

菜单区域就不一一介绍了,摸索摸索10分钟也就了解了。

介绍一下控件区域:

matlab gui制作,MATLAB GUI制作教程_第2张图片

双击按钮我们可以看到他的属性,如图:

matlab gui制作,MATLAB GUI制作教程_第3张图片右击按钮->查看回调 我们可以看到分别有几个回调函数,分别是callback、createfcn、deletefcn、buttondownfcn、keypressfcn.

其中callback函数是自动创建的,其余的函数都是需要点击一次才会自动创建。

首先说一下回调函数的作用,在我对控件进行某一种操作的时候,程序会基于我这种操作去执行他所对应的函数,在qt中这种函数也叫槽函数。

举个例子,当我按了一下按钮时,程序就会执行pushbutton下的callback函数。

callback

这是最常用的一个回调函数,点击按钮时,这个函数会执行一遍,如果是可编辑文本,那么编辑完以后按下回车,这个函数也会运行一次,控件的常规操作都是在这个函数下执行。

createfcn

在我们想要创建这一个控件的时候会去执行这个函数。(我们可以在这里选择,控件的样式,值之类的)

deletefcn

当我们删除这个控件时会调用这个函数。(可以在这里写上一些销毁后的逻辑操作)

ButtonDownFcn

鼠标在空间上点击的时候就会执行。

KeyPressFcn

当从没有选中,变为选中的时候会执行这个函数。

(1)pushbutton

点击按钮->右击->查看回调->callback->进入代码

092b06063f464d883d569db29377b053.pnghObject就是pushbutton1自己。

eventdata暂时没用。

handles存放了这个控件的所有属性。

设置属性: set(handles.控件的tag,‘属性名’,‘属性值’)

获取属性:get(handles.控件的tag,‘属性名’)

举个例子:

% --- 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)

a = get(handles.pushbutton1,'BackgroundColor') ;%得到按钮背景颜色

set(handles.pushbutton1,'BackgroundColor','blue');%设置按钮背景颜色

set(handles.radiobutton1,'BackgroundColor','yellow');%设置单选按钮背景颜色

set(handles.radiobutton1,'Max',0);//设置单选按钮的值

matlab gui制作,MATLAB GUI制作教程_第4张图片(2)radiobutton 、 checkbox

与普通按钮不同处在于通过get(hObject,‘Max’)来选择执行哪段代码,效果如下,运行下试试吧。

% --- Executes on button press in radiobutton1.

function radiobutton1_Callback(hObject, eventdata, handles)

% hObject handle to radiobutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton1

if(get(hObject,'Value')==get(hObject,'Max'))

%选中后执行代码

set(handles.radiobutton1,'BackgroundColor','yellow');%选中后颜色变黄

else

%没选中后执行代码

set(handles.radiobutton1,'BackgroundColor','blue');%没选中后颜色变蓝

end

(3)sliders、text、edit

text与edit的不同处在于,edit可以提前编辑,而text不能。

下面代码通过获取滑块值把值显示到静态文本上。

% --- Executes on slider movement.

function slider1_Callback(hObject, eventdata, handles)

% hObject handle to slider1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider

% get(hObject,'Min') and get(hObject,'Max') to determine range of slider

value=get(hObject,'Value');%获取滑块当前值

set(handles.text2,'String',num2str(value));%把值显示到静态文本

效果如下:

a003439a513aae916fc3b9d3f62929e2.png(4)popupmenu

弹出式菜单,双击->string->输入菜单值->运行->在下拉框选择值

val=get(hObject,‘Value’)%获取当前选择值

matlab gui制作,MATLAB GUI制作教程_第5张图片(5)listbox

列表框,双击->string->输入菜单值(1,2,3)->运行->选择

% --- Executes on selection change in listbox1.

function listbox1_Callback(hObject, eventdata, handles)

% hObject handle to listbox1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns listbox1 contents as cell array

% contents{get(hObject,'Value')} returns selected item from listbox1

index = get(handles.listbox1,'Value'); %得到当前选择的索引

list =get(handles.listbox1,'String'); %得到string列表

value = str2num(list{index});%由当前索引查列表得到值

if value == 1

set(handles.listbox1,'BackgroundColor','yellow');%不同的索引设置不同颜色,看效果

elseif value == 2

set(handles.listbox1,'BackgroundColor','blue');

elseif value == 3

set(handles.listbox1,'BackgroundColor','black');

end

(6)togglebutton

与单选按钮差不多。

在这里插入代码片

% — Executes on button press in togglebutton1.

function togglebutton1_Callback(hObject, eventdata, handles)

% hObject handle to togglebutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,‘Value’) returns toggle state of togglebutton1

if(get(hObject,‘Value’)==get(hObject,‘Max’))

%选中后执行代码

set(handles.togglebutton1,‘BackgroundColor’,‘yellow’);

else

%没选中后执行代码

set(handles.togglebutton1,‘BackgroundColor’,‘blue’);

end

(7)uitable

双击->Data->里面可以选择表格的属性。

与其他控件不同的是回调函数不一样

celleditcallback 在编辑的时候执行

cellselectioncallback在选中的时候执行

function uitable1_CellEditCallback(hObject, eventdata, handles)

% hObject handle to uitable1 (see GCBO)

% eventdata structure with the following fields (see MATLAB.UI.CONTROL.TABLE)

%Indices: row and column indices of the cell(s) edited

%PreviousData: previous data for the cell(s) edited

%EditData: string(s) entered by the user

%NewData: EditData or its converted form set on the Data property. Empty if Data was not changed

%Error: error string when failed to convert EditData to appropriate value for Data

% handles structure with handles and user data (see GUIDATA)

% set(handles.uitable1,'BackgroundColor','black');

color = [];

color(1,1)=0;

color(1,2)=0.1;

color(1,3)=0.2;

color(2,1)=0.3;

color(2,2)=0.4;

color(2,3)=0.5;

a = set(handles.uitable1,'BackgroundColor',color);%手动编辑后回车修改颜色

% --- Executes when selected cell(s) is changed in uitable1.

function uitable1_CellSelectionCallback(hObject, eventdata, handles)

% hObject handle to uitable1 (see GCBO)

% eventdata structure with the following fields (see MATLAB.UI.CONTROL.TABLE)

%Indices: row and column indices of the cell(s) currently selecteds

% handles structure with handles and user data (see GUIDATA)

array = cell(2,2);

array{1,1}='a';

array{1,2}='1';

array{2,1}='sds';

array{2,2}='yjf';

set(handles.uitable1,'Data',array);%点击控件后赋值

matlab gui制作,MATLAB GUI制作教程_第6张图片

(8)axes

程序执行以下代码可以实现对坐标系的放大缩小

h = zoom;

setAxesZoomMotion(h,handles.axes1,'both');%horizontal和vertical都放大

zoom on

set(h,'direction','in');

%set(h,'direction','out');

程序执行以下代码可以将图像显示在坐标系上

axes(handles.axes1);

hold on;

grid on;

axis equal;

data=[];

data(1,1)=1;

data(1,2)=2;

data(2,1)=5;

data(2,2)=10;

data(3,1)=6;

data(3,2)=5;

plot(data(:,1),data(:,2),'-*r');

matlab gui制作,MATLAB GUI制作教程_第7张图片

(9)uipanel

面板,好像只是看上去会好看一些,然后可以划分区域给某个区域起个名字之类的。

(10)uibuttongroup

暂且我知道的功能就是选中其中的哪个按钮,他的tag就会变成哪一个按钮的tag。

% --- Executes when selected object is changed in uibuttongroup1.

function uibuttongroup1_SelectionChangedFcn(hObject, eventdata, handles)

% hObject handle to the selected object in uibuttongroup1

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

str=get(hObject,'tag');

switch str

case 'radiobutton4'

%按钮4操作

case 'radiobutton5'

%按钮5操作

case 'radiobutton6'

%按钮6操作

end

你可能感兴趣的:(matlab,gui制作)