本文概述
- 图形用户界面如何工作?
- 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多项式
- MATLAB符号数学
- MATLAB特征值和特征向量
- MATLAB rref精简行梯形