-
matlabgui教程基础-GUIwithMatlab.rar
2019-08-12 22:13:55matlabgui教程基础-GUIwithMatlab.rar 一份精典的讲义,只有十四页,图文程序并茂,迅速了解GUI基础. -
matlabgui教程英语-30150003746[1].rar
2019-08-13 04:47:38matlabgui教程英语-30150003746[1].rar 找了很长时间才找到的教程,是英文教程,学起来可能有些困难! 希望有用啊!! -
MatlabGUI教程源代码分享-光盘的内容.rar
2019-08-13 07:02:31MatlabGUI教程源代码分享-光盘的内容.rar 希望大家顶啊,都是GUI设计方面的,对大家有所帮助! -
gui设置可编辑文本框的回调函数_Matlab gui教程0x3-GUI回调函数(callback)代码
2020-12-31 01:45:32在保存GUI程序时,Matlab会自动生成.fig和.m文件,其中的.m就是我们现在要操作的对象。我们就是M文件中添加控件的回调函数相应用户的操作!这也是GUI编程的核心内容,它要求你必须掌握Matlab基本编程以及图形句柄...在保存GUI程序时,Matlab会自动生成.fig和.m文件,其中的.m就是我们现在要操作的对象。
我们就是M文件中添加控件的回调函数相应用户的操作!这也是GUI编程的核心内容,它要求你必须掌握Matlab基本编程以及图形句柄语句!
打开.m文件,发现里面有很多function的代码,看得我们眼花缭乱,呵呵,不要胆怯!本教程是初级教程, 我们只涉及里面的callback,其他的我们可以暂时置之不理!至于其它的我们以后的教程中对做相关介绍!
在正式讲解之前,一个小使用技巧,Matlab Editor(代码编辑器)工具栏显示函数按钮
,可以让我们快速跳转我们需要的函数位置!这个在.m内容很多的时候很有用哦!
1、在Editor中工具栏的函数Show Function中选择input1_editText_Callback
或者右击tag为input1_editText的编辑文本框,View Callback→Callback
2、此时光标会跳转到.m文件的function input1_editText_Callback处,方便我们直接编辑
function input1_editText_Callback(hObject, eventdata, handles)
% hObject handle to input1_editText (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,’String’) returns contents of input1_editText as text
% str2double(get(hObject,’String’)) returns contents of
% input1_editText as a double
复制代码
在上面代码下添加如下MATLAB代码
% handles 包含figure中所有图形对象句柄的结构体,如果我们想引用tag为mytag的控件,使用handles.mytag
% set/get 函数是用来设置/获取某个控件属性
% 使用get命令获取第一个加数,并将它转换成数值
input = str2num(get(hObject,’String’)); % string属性是字符串,所以必须转换成数值
% 检验输入是否为空,是则将它置为0
if (isempty(input))
set(hObject,’String’,’0′)
end
% 保存handles结构体,只要在handles结构体有改变时,才需要保存
guidata(hObject, handles); % 这里由于handles没有改变,故这里其实没有必要,但是为了避免潜在的不必要麻烦,建议在所有Callback最后都添加该命令
复制代码
3、为input2_editText_Callback添加完全相同的代码
4、编辑add_pushbutton_Callback回调函数,使用上面提到的方法,将光标定位到
% — Executes on button press in add_pushbutton.
function add_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to add_pushbutton (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.input1_editText,’String’);
b = get(handles.input2_editText,’String’);
% a和b是字符串变量,我们需要使用str2double函数将其转换为数值
% 然后才能相加,否则字符串是没法相加的
total = str2num(a) + str2num(b); % 格式转换,转换为数值
% 由于string属性是字符串,所以必须将两个数的和转换为字符串
c = num2str(total); % 转换为字符串
% 将结果赋值给answer_staticText空间的string属性,于是就可以显示结果了
set(handles.answer_staticText,’String’,c);
guidata(hObject, handles); % 更新结构体
复制代码
恭喜您,到此为此这个GUI程序就完成了!接下来就可以运行和演示它了!
有一个小技巧要告诉大家的,如果您在第一次保存GUI程序时,不想让Matlab为每一个callback回调函数自动生成注释文本,可以如下操作:File→Preferences…
如果不想让Matlab自动生成fig文件,而只是生成M文件,可以如下操作:Tools→GUI Option
-
matlabGUI简单教程-MatlabGUI简单教程.doc
2019-08-12 19:31:00matlabGUI简单教程-MatlabGUI简单教程.doc 新手学习matlabGUI简单教程 -
matlab GUI 实例教程
2014-03-10 16:41:44matlab GUI 实例教程:How to design a GUI program (Tutorial of Matlab GUI) -
Matlab GUI 详细教程
2021-01-02 00:31:52要想学习GUI,这绝对是一个极好的教程,里面的内容非常详细,有简单的也有复杂的,想入门可以,想深学也可以,总之觉得不错的教程! -
MATLAB GUI制作教程
2020-07-07 19:06:08因为工作需要,自己摸索过matlab的GUI制作,也做了好几个GUI工具,主要就是用来数据回放,分析分析,下面我分享一下经验,与各位朋友共同进步。 1。命令行输入guide -> 选中Blank GUI-> 确定进入gui界面。 2。...因为工作需要,自己摸索过matlab的GUI制作,也做了好几个GUI工具,主要就是用来数据回放,分析分析,下面我分享一下经验,与各位朋友共同进步。
1。命令行输入guide -> 选中Blank GUI-> 确定进入gui界面。
2。上面横栏是菜单区域,左边竖栏是控件区域。
菜单区域就不一一介绍了,摸索摸索10分钟也就了解了。
介绍一下控件区域:
双击按钮我们可以看到他的属性,如图:
右击按钮->查看回调 我们可以看到分别有几个回调函数,分别是callback、createfcn、deletefcn、buttondownfcn、keypressfcn.
其中callback函数是自动创建的,其余的函数都是需要点击一次才会自动创建。
首先说一下回调函数的作用,在我对控件进行某一种操作的时候,程序会基于我这种操作去执行他所对应的函数,在qt中这种函数也叫槽函数。
举个例子,当我按了一下按钮时,程序就会执行pushbutton下的callback函数。callback
这是最常用的一个回调函数,点击按钮时,这个函数会执行一遍,如果是可编辑文本,那么编辑完以后按下回车,这个函数也会运行一次,控件的常规操作都是在这个函数下执行。
createfcn
在我们想要创建这一个控件的时候会去执行这个函数。(我们可以在这里选择,控件的样式,值之类的)
deletefcn
当我们删除这个控件时会调用这个函数。(可以在这里写上一些销毁后的逻辑操作)
ButtonDownFcn
鼠标在空间上点击的时候就会执行。
KeyPressFcn
当从没有选中,变为选中的时候会执行这个函数。
(1)pushbutton
点击按钮->右击->查看回调->callback->进入代码
hObject就是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);//设置单选按钮的值
(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));%把值显示到静态文本
效果如下:
(4)popupmenu
弹出式菜单,双击->string->输入菜单值->运行->在下拉框选择值
val=get(hObject,‘Value’)%获取当前选择值
(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);%点击控件后赋值
(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');
(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教程
2018-03-11 13:32:18本文档主要介绍MATLAB中GUI使用,同时穿插了很多典型的小程序,基本应用到了GUI中的所有控件 -
MATLAB GUI视频教程:uitable的使用方法
2016-04-24 21:47:27MATLAB GUI视频教程:uitable的使用方法 -
Matlab-GUI入门教程
2018-06-19 13:00:27Matlab-GUI入门教程,Matlab-GUI入门教程,Matlab-GUI入门教程 -
MATLAB GUI视频教程:uitable的使用方法.pdf
2019-08-13 13:03:05MATLAB GUI视频教程:uitable的使用方法,全方位介绍uitable的使用方法! -
Matlab GUI视频教程 教你一步一步的用GUI做交互界面.
2013-03-06 16:02:28Matlab GUI视频教程 教你一步一步的用GUI做交互界面. -
MATLAB实用教程GUI
2020-05-03 19:31:03matlab的用户界面编程实用教程,主要用于在matlab界面下的界面编程 matlab的用户界面编程实用教程,主要用于在matlab界面下的界面编程 -
Matlab GUI视频教程 教你一步一步的用GUI做交互界面
2008-12-06 16:17:29Matlab GUI视频教程 教你一步一步的用GUI做交互界面。简短实用 -
matlab gui图像用户界面入门教程
2019-01-03 13:10:51matlab基本教程,里面包括回调函数及步骤分析,通过一步一步的讲解教会你如何入门gui界面 -
Matlab GUI视频教程 教你一步一步的用GUI做交互界面.rar
2009-02-28 16:44:16Matlab GUI视频教程 教你一步一步的用GUI做交互界面.rar -
matlab2019b的gui界面在哪_2019年matlabgui初学者教程
2020-12-29 21:10:18Matlab也有图形用户界面开发环境。随着计算机技术的飞速发展。人与计算机的通信方式也发生的很大的变化。从原来的命令行通讯方式(例如很早的DOS系统)变化到了现在的图形界面下的交互方式。而现在绝大多数的应用程序...什么是
GUI
呢
? GUI
是
Graphical User Interface
图形用户界面的意思。象很多高级编程
语言一样。
Matlab
也有图形用户界面开发环境。随着计算机技术的飞速发展。人与计算机
的通信方式也发生的很大的变化。从原来的命令行通讯方式(例如很早的
DOS
系统)变化
到了现在的图形界面下的交互方式。
而现在绝大多数的应用程序都是在图形化用户界面下运
行的。
记得读书的时候。
大学开学不久。
学校很多同学就开始报考全国计算机等级考试了。
当然我
也是其中的一分子。其中
C
语言是大多数人选择的科目。当时在学
C
语言的时候。经常也
会遇到人机交互的例子。譬如一个计算两个数相加的程序。运行程序后便切换到了
Dos
模
式。然后在此模式下输入两个数。再回车。才能返回运算结果。当时就觉得很不方便。也不
友好。
后来才得知
C
语言是面向过程的语言。
是非面向对象的语言
(
VC++,VB,Matlab
等是
面向对象的)。那么下面我们就来看看
Matlab
是如何简单、快速而友好地解决这类问题的
吧。
Matlab GUI
编程教程(适用于初学者)
1
.首先我们新建一个
GUI
文件:
File/New/GUI
如下图所示;
-
matlab像素值截止点_MATLAB_GUI_教程连载(1)figure
2021-01-28 00:16:05目录前言MATLAB GUI 窗口中的元素窗口 figure窗口的常用属性如何获取一个窗口的属性有哪些属性值设置窗口的属性值...我在网上看到的大多数的MATLAB GUI教程基本都是用GUIDE拖拽来做的,我当初自己学的时候也是从GUI...目录
前言MATLAB GUI 窗口中的元素窗口 figure窗口的常用属性如何获取一个窗口的属性有哪些属性值设置窗口的属性值
前言
每年的这个时候都会有做毕业设计的同学来找我问GUI的问题,我也很乐意回答他们,但是要问我你自己专业的知识,这我就扛不住了,我自己专业的知识都还掌握的不好。
我在网上看到的大多数的MATLAB GUI教程基本都是用GUIDE拖拽来做的,我当初自己学的时候也是从GUIDE开始的,这个号最开始的那些推送中讲的GUI都是用GUIDE做的,后来在桥哥(打浦桥程序员)的知识星球中做了几期用纯代码的方式编写GUI的练习,把用GUIDE做界面的习惯给改了。
我发现好多工科的毕设题目都要用到MATLAB,很可能老师会要求顺带做个GUI界面。所以我打算在这个月内多抽点时间来做一下MATLAB GUI的教程,由于我本人的水平有限,表达能力也有限,所以可能会存在一些问题,不过我会尽量避免。
MATLAB GUI 窗口中的元素
如下图所示:
GUI界面中的元素 在接下来的若干期中,我会逐个介绍一下 窗口 figure
要做一个界面,首当其冲的就是窗口,我们必须要创建一个窗口,然后才能在这个窗口中添加各种东西,这个窗口就相当于是一个容器。那么如何创建一个窗口呢?
h_fig = figure;
返回的
h_fig
是所创建的窗口的句柄
,如果不理解句柄是啥,就把它看做是一个容器,h_fig
就是我们给刚创建的这个窗口起的名字,在这个窗口容器中我们可以添加我们想添加的控件。
创建的简单的窗口,如下图所示:GUI界面中的元素 窗口的常用属性
但是像上面这样也太简单了,通常我们需要设置窗口的一些属性,那么如何查看窗口有哪些属性呢?在matlab的命令行中输入
h_fig
回车,这个h_fig
就是上面写的那个,你要是没上面那句,直接输入这个是不行的。这样会在命令行中显示该窗口的所有属性,不过他不会一下子全部显示出来,你需要点击所有属性
才可以,如下图:属性 下面列一下常用的属性:
Color 可以设置窗口的颜色
MenuBar 通常用来关掉默认的菜单栏
Name 用来设置窗口的标题
NumberTitle 把窗口的数字序号关掉
Position 设置窗口的位置
Resize 设置窗口是否可以通过拉伸来改变窗口的尺寸
ToolBar 通常用来关掉默认的工具栏
Units 设置窗口的Position坐标的单位
Visible 设置该窗口是否可见
这里还有一些窗口的回调函数我没列出来,我觉得一般毕设中的那些界面用不上吧,一般这几个就够用了,如果需要相关的功能请按照上面获取属性的方法,根据那些属性的名字推测哪个可能是你想要的,再去MATLAB的文档里看看说明。
如何获取一个窗口的属性有哪些属性值
知道有那些属性了,如何查看窗口的某个属性有那些属性值呢,以获取
Units
的属性值为例:
在matlab的命令行中输入:set(h_fig, 'Units')
回车后便可以看到有那些属性值了,这种方法不仅仅可用于figure也可以用于以后讲的其他控件,只要是想获取一个图形句柄的属性有哪些属性值,都可以这么用!
获取属性值 设置窗口的属性值
如果一下子需要设置多个属性值,可以用下面的方法来设置:
窗口句柄.属性名 = 属性值;切记:这种方法要求组成属性名的每个单词首字母都要大写
。这种设置属性值的方法,对后面要讲的所有控件都适用。h_fig = figure;
h_fig.NumberTitle = 'off'; % 关闭数字标题
h_fig.Name = '教程1(figure)'; % 窗口名字为 教程1(figure)
h_fig.MenuBar = 'none'; % 关闭figure默认的菜单栏
h_fig.ToolBar = 'none'; % 关闭figure默认的工具栏
h_fig.Color = 'k'; % 黑色
% Units一定要在Position之前设置
h_fig.Units = 'pixels'; % 像素为单位
h_fig.Position = [0, 0, 900, 100]; % 左下角点在屏幕的左下角宽900像素,高100像素
h_fig.Resize = 'off';
h_fig.Visible = 'on'; % 若为 off则隐藏了,不可见运行结果如下:
关于Position那个,一般单位都取
pixels
即:像素,Position 的值,请同学自己多试试就能搞清楚了。窗口句柄.属性名 = 属性值; 它还有个等价的方式:
set(窗口句柄, '属性名', 属性值);
比如:
set(h_fig, 'Units', 'pixels'); % 像素为单位
set(h_fig, 'Position', [0, 0, 900, 100]); % 左下角点在屏幕的左下角宽900像素,高100像素这种方式不要求组成属性名的每个单词首字母都要大写,全都小写也行。这种设置属性值的方法,对后面要讲的所有控件都适用。
不过呢,如果只需要设置一两个属性时,还是推荐用下面的这种方法:
h_fig = figure('属性1', '值1', '属性2', '值2', '属性3', '值3');
比如:
h_fig = figure('Name', '教程1(figure)', 'MenuBar', 'none', 'ToolBar', 'none');
-
关于GUI的具体应用很适合初学者的学习-Matlab GUI视频教程 教你一步一步的用GUI做交互界面111.part2.rar
2019-08-13 09:56:38关于GUI的具体应用很适合初学者的学习-Matlab GUI视频教程 教你一步一步的用GUI做交互界面111.part2.rar 本视频是 个人录制的视频录象,脉络清晰简单,详细的介绍了GUI的应用,视频内容介绍了 关于MATLAB图形设计的... -
关于GUI的具体应用很适合初学者的学习-Matlab GUI视频教程 教你一步一步的用GUI做交互界面111.part1.rar
2019-08-13 09:56:27关于GUI的具体应用很适合初学者的学习-Matlab GUI视频教程 教你一步一步的用GUI做交互界面111.part1.rar 本视频是 个人录制的视频录象,脉络清晰简单,详细的介绍了GUI的应用,视频内容介绍了 关于MATLAB图形设计的...
-
2021 PHP租车系统 毕业设计 毕设源码 源代码使用教程
-
肖sir_多测师高级金牌讲师__app面试题(001)
-
QT控件常用函数记录
-
UL 48:2018 Standard for Electric Signs(电子标牌如LED显示屏)-完整英文版(128页)
-
[官方版本]miracl_5.5.4
-
JOKER.ONE的启示是什么,JOKER.ONE有未来吗?
-
物联网之mqtt实现(emqx+springboot+mqtt附源码)
-
非功能性需求,不要成为项目的坑
-
【硬核】一线Python程序员实战经验分享(1)
-
access应用的3个开发实例
-
PC_ACCESS最新版.7z
-
基于3D Mesh MoSIFT特征描述符的手部精细动作识别
-
基于Qt的LibVLC开发教程
-
复数值步长在复数值梯度学习算法中有优势吗?
-
面试题总结-满帮集团
-
transfereArgent_backend-源码
-
vue前端设置跨域(跨端口)
-
Fibonacci
-
基于用户信息的社交网络信任评估方法
-
降维组合的癌症分类方法