MATLAB图形用户界面

本文概述

  • 图形用户界面如何工作?
  • GUI的组件
图形用户界面(GUI)是程序的可视界面。优质的GUI通过为应用程序提供一致的外观和直观的控件(如按钮, 编辑框, 列表框, 滑块和菜单), 可以使它们使用起来更加舒适。
图形用户界面如何工作? 图形用户界面为客户端提供了一个熟悉的工作环境。它包含按钮, 切换按钮, 列表, 菜单, 文本框等。对于程序员而言, GUI较难, 因为必须随时准备基于GUI的应用程序以供鼠标单击(或可能是键盘输入), 以随时访问任何GUI项目。此类数据称为事件, 并且响应事件的程序被称为事件驱动的。
创建MATLAB图形用户界面所需的三个主要组件是:
组件
MATLAB GUI上的每个元素(按钮, 标签, 编辑框等)都是图形组件。组件的方法包括图形控件(按钮, 切换按钮, 编辑框, 文件, 滑块等), 静态组件(文本框), 菜单, 工具栏和轴。 uicontrol函数创建图形控件和文本框, 菜单由uimenu和uicontextmenu函数创建。工具栏按功能uitoolbar进行组织。由功能轴创建用于显示图形数据的轴。
货柜
GUI的组件必须组织在一个容器中, 该容器是计算机屏幕上的一个窗口。最常见的容器是数字。数字是笔记本电脑屏幕上的窗口, 顶部带有标题栏, 并且可以有选择地连接菜单。过去, 无论何时绘制数据, 图片都是自动创建的。
功能图可以生成空图, 并且空图可用于影响组件和其他容器的任何组合。容器的不同类型是面板(由uipanel函数创建)和按钮组(由uibuttongroup函数创建)。面板可以包含组件或其他容器, 但是它们没有标题栏, 也无法连接菜单。按钮组是特殊的面板, 可以处理单选按钮或切换按钮组, 以确保该组中的任何一个按钮在任何时候都不会打开。
回呼
最后, 如果用户在按钮上单击鼠标或在键盘上键入信息, 则必须采取某种措施。鼠标单击或按键是一个事件, 如果MATLAB程序要执行其功能, 则该程序必须响应每个事件。例如, 如果用户单击按钮, 则该事件必须导致执行实现按钮角色的MATLAB代码。响应事件而执行的代码称为回调。必须有一个回调来实现GUI上每个图形元素的角色。
GUI的组件
Component Created By Description
Containers
Figure figure 它创建一个图形, 它是一个可以容纳组件和其他容器的容器。图形是具有标题栏和菜单的独立窗口。
Panel uipanel 它创建一个面板, 该面板是可以容纳组件和其他容器的容器。与图像不同, 面板没有标题栏或菜单。面板可以放置在图片或其他面板内。
Button Group uibuttongroup 它创建一个按钮组, 这是一种特殊的面板。按钮组自动处理单选按钮或切换按钮组, 以确保在任何给定时间仅打开该组中的一个组件。
图形控件
Pushbutton uicontrol 实现按钮的图形元素。当用鼠标单击时, 它将触发回调。
Toggle Button uicontrol 执行切换按钮的图形组件。切换按钮为” 开” 或” 关” , 并且每次单击时都会更改状态。每次单击鼠标也会触发回调。
单选按钮 uicontrol 单选按钮是一种切换按钮, 当它处于” 打开” 状态时, 会以小圆圈的形式出现在中间, 并带有一个点。单选按钮组用于执行互斥选择。每次单击单选按钮都会触发回调。
Checkbox uicontrol 复选框是一种切换按钮, 当它处于” 打开” 状态时, 会显示为一个带有选中标记的小方块。每次在复选框上单击鼠标都会触发回调。
Edit Box uicontrol 编辑框显示文本字符串, 并允许用户修改显示的信息。用户按下Enter键或用户用鼠标单击其他对象时, 将触发回调。
列表框 uicontrol 列表框是显示一系列文本字符串的图形控件。客户可以通过单击或双击文本字符串之一来选择它们。客户选择字符串时, 将触发回调。
Popup Menus uicontrol 弹出菜单是一个图形控件, 它显示响应鼠标单击的一系列文本字符串。如果未单击弹出菜单, 则仅清除当前选择的字符串。
Slider uicontrol 滑块是一种图形控件, 可通过用鼠标拖动该控件以一种平滑, 规则的方式调整值。每个滑块修改都会触发一个回调。
Frame uicontrol 它创建一个框架, 该框架是图形中的矩形框。框架用于将控件集关联在一起。框架永远不会触发回调。
Text Field uicontrol 它创建一个标签, 该标签是位于图中某点的文本字符串。文本字段永远不会触发回调。
菜单, 工具栏, 轴
菜单项 uimenu 它创建一个菜单项。菜单项在鼠标按钮上释放时触发回调
上下文菜单 uicontextmenu 它创建一个上下文菜单, 该菜单是当用户右键单击该对象上的图形对象时出现的菜单。
Toolbar uitoolbar 它创建一个工具栏, 该工具栏是图顶部的一个栏, 其中包含快速访问按钮。
Toolbar uipushtool 它创建一个按钮以进入工具栏。
工具栏切换 uitoggletool 它创建一个切换按钮以进入工具栏。
Axes axes 它创建一组新的轴以显示数据。轴从不触发回调。
例子
将一个简单的计算器实现为GUI(图形用户界面)。
% --- Executes on button press in BtnZero.function BtnZero_Callback (hObject, eventdata, handles)% hObjecthandle to BtnZero (see GCBO)% eventdata reserved - to be described in a future version of MATLAB% handlesstructure with manage and user data (see GUIDATA)textString=get (handles. edit1, 'string'); textString=strcat(textString, '0'); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnOne.function BtnOne_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=strcat(textString, '1'); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnTwo.function BtnTwo_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=strcat(textString, '2'); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnThree.function BtnThree_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=strcat(textString, '3'); set(handles. edit1, 'string', textString); % --- Executes on button press in BtnFour.function BtnFour_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=strcat(textString, '4'); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnFive.function BtnFive_Callback(hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=strcat(textString, '5'); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnSix.function BtnSix_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=strcat(textString, '6'); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnSeven.function BtnSeven_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=strcat(textString, '7'); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnEight.function BtnEight_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=strcat(textString, '8'); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnNine.function BtnNine_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=strcat(textString, '9'); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnPlus.function BtnPlus_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=strcat(textString, '+'); set(handles. edit1, 'string', textString); % --- Executes on button press in BtnMinus.function BtnMinus_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=strcat(textString, '-'); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnMul.function BtnMul_Callback (hObject, eventdata, handles)textString=strcat(textString, '*'); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnDivide.function BtnDivide_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=strcat(textString, '/'); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnCalc.function BtnCalc_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); textString=eval(textString); set (handles. edit1, 'string', textString); % --- Executes on button press in BtnClear.function BtnClear_Callback (hObject, eventdata, handles)textString=get (handles. edit1, 'string'); set (handles. edit1, 'string', '');

【MATLAB图形用户界面】输出
MATLAB图形用户界面

文章图片
MATLAB图形用户界面

文章图片
MATLAB图形用户界面

文章图片
MATLAB图形用户界面

文章图片
MATLAB图形用户界面

文章图片
MATLAB图形用户界面

文章图片

    推荐阅读