Matlab_Gui的简易操作

本文介绍一下matlab简单介绍一下如何写一个Gui界面(简易的抽奖机)。matlab写Gui界面有两种方法,一种是利用m文件,自己手敲代码。 另外一种是利用guide控件来写。我不太喜欢利用guide这种方法,还是更喜欢利用m文件方式,本文也是介绍这种方法。
首先介绍几个函数。一、figure函数,这个函数我相信只要有了解过matlab的人就知道,创建图形界面。当然这个界面有很多参数是可以调的,例如:大小,在屏幕中的位置,以及显示哪些按键呢?,这个我十分推荐大家去查看matlab的官方Figure Properties这个手册,关于图形界面的所有参数都有,只需去查自己需要的。第二个函数就是uicontrol这个函数,对该界面加入控制组件,那么这个控件呢也有十分多的参数,如何使用呢?和上述的方法一样,找到Uicontrol Properties这个手册,对应自己的需求去查找相应的参数设置就行。那么了解这两个函数以后就可以做一个简易的游戏机了。

function GUI_test
close all
global GUI
%%先设置一个figure界面,具体参数设置
GUI.h=figure('menuBar','none','Name','抽奖机','NumberTitle','off','position',[200,200,1000,600]);
%%这里是为了给抽奖机设置一个外观形状,读入了一个图片,函数很简单,不了解可以查看官方手册
InterfacePic2=imread('interfacePic2.png');
face_pic=3.1;
axes('parent',GUI.h,'Position',[0.20,0.1,0.296*face_pic,0.28*face_pic]);
imshow(InterfacePic2);
InterfacePic3=imread('interfacePic3.png');
InterfacePic4=imread('interfacePic4.png');
%%对该界面加入控制组件,使用uicontrol这个函数
GUI.Str=uicontrol('style','pushbutton','position',[900,240,50,180],'CData',InterfacePic3...
    ,'callback',@CountStart,'visible','on');
GUI.Stop=uicontrol('style','pushbutton','position',[900,190,50,180],'CData',InterfacePic4...
    ,'callback',@CountStop,'visible','off');
GUI.text1=uicontrol('style','text','string','模式设置:','position',[30 400 70 50],...
    'ForegroundColor','k','FontSize',10);
GUI.button=uicontrol('style','pushbutton','string','开始抽奖','position',[100 420 70 50]...
    );
GUI.result=uicontrol('style','text','string','','position',[630 350 70 50],...
    'ForegroundColor','r','FontSize',30);
GUI.text2=uicontrol('style','text','string','抽奖人数:','position',[30 340 70 50],...
    'ForegroundColor','r','FontSize',10);
GUI.edit=uicontrol('style','edit','string','','position',[100 360 70 50]...
     ,'callback',@changeeditfcn);
GUI.text3=uicontrol('style','text','string','实际人数:','position',[30 290 70 50],...
    'FontSize',10);
GUI.text4=uicontrol('style','text','string','','position',[100 290 70 50],...
    'FontSize',10);      
end

对于uicontrol函数,它其中有个参数我觉得很有必要讲一下,callback功能,这个callback功能让我们的按键有了实际的功能,如果有学过单片机的朋友,有点类似于中断那种意思。eg:GUI.Str=uicontrol(‘style’,‘pushbutton’,‘position’,[900,240,50,180],‘CData’,InterfacePic3…
,‘callback’,@CountStart,‘visible’,‘on’);这个回调的作用就是按键按下我们有什么界面需要有什么反应,具体的功能执行写在了CountStart中,所以我们还需写几个功能函数。

function changeeditfcn(~,~)
global GUI
EditValue=get(GUI.edit,'string');
set(GUI.text4,'string',EditValue)
end
function CountStart(~,~)
global GUI
set(GUI.Str,'visible','off');
set(GUI.Stop,'visible','on');
EditValue=get(GUI.edit,'string');
EditValue=str2double(EditValue);
LottoNum=round(rand*EditValue);
set(GUI.result,'string',num2str(LottoNum));
end
function CountStop(~,~)
global GUI
set(GUI.Str,'visible','on');
set(GUI.Stop,'visible','off');      
end

这样一个简易的游戏机就成功了。如果有误,望大佬能指导一下小弟,小弟感激不尽。

你可能感兴趣的:(matlab,开发语言,图像处理)