添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

创建简单的UI界面,并包含“普通按钮”、“弹出式菜单”以及“可编辑文本”3种控件,通过“弹出式菜单”选择文字,按下按钮后在可编辑文本中显示。

首先,创建.fig文件,在”命令行“窗口内输入 guide ,点击回车后弹出以下弹窗,左侧的GUIDE templates即GUIDE模板,默认为空白,选中其它模板后右侧可以看到预览画面。

勾选下面弹窗以修改文件名称(好像这里的文件名称不能和文件夹名重复,也就是这里不能设置为try.fig,重复的话后面不能保存更不用说运行了),最后点击下面的确定。

在这里插入图片描述
此时在“当前文件夹”窗口会产生T.fig文件和T.m文件,弹出T.fig弹窗,如下图所示,并且“编辑器窗口”也是选中了T.m文件。

T.m文件可以认为是T.fig文件的本体,运行整个UI界面有两种方法:点击上图.fig文件弹窗右上角的绿色运行符,或运行T.m文件。

注意右键“当前文件夹”窗口的.fig文件,然后点击“运行”,无法真的运行该界面,只能看而已。

若关闭后要进入上述编辑框,可右键“当前文件夹”窗口的.fig文件,点击“在GUIDE”中打开。

UI界面设计

本文将通过3种控件:“普通按钮”、“弹出式菜单”以及“可编辑文本”创建简单的UI界面,首先将这3种控件拖动至背景框,停留在控件上会显示控件名,如下图所示。

其次,随意地放置这些控件,拖动至背景框后,点击控件并左键按住边缘点并拖动可以对其进行拉伸。

放置后双击相应控件,会弹出该控件的属性检查器(一般左上角显示1个图标并写着”检查器“),根据下面的表格设置3种控件的对应属性:

控件名|修改属性|修改值|作用 修改属性 修改值 作用
普通按钮 FontSize 10 字体变大好看一点
String 按钮 修改显示的文字
Tag button 方便后续调用
弹出式菜单 FontSize 10 字体变大好看一点
Tag menu 方便后续调用
可编辑文本 FontSize 10 字体变大好看一点
HorizontalAlignment left 左对齐会好看
Max 2 使Max-Min>1,使能多行输入以及滑动条
Tag edit 方便后续调用

通过上述修改后,可以先点击右上角运行图标,运行试试。如下图所示,可以点击“按钮”查看变化,点击“文本编辑框”并输入相应数据,又或者点击”弹出式菜单“。当然,此时各种操作都不会执行相应的操作(毕竟没设置),接下来设置各个控件的回调函数,以实现相应的交互功能。

在T.m文件中,前两个函数为T函数和T_OpeningFcn函数,一般控件的初始化代码放在T_OpeningFcn函数中,未添加代码时该函数如下所示(省略注释),初始化代码一般添加在最下面。

function T_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);

       下面是添加初始化代码后的T_OpeningFcn函数,以及相应代码的注释。

function T_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
global str;       %定义全局变量str
set(handles.menu, 'string', {'也', '可', '以', '清', '心',...  %...为续行符
    }, 'value', 1);    %设置弹出式菜单弹出的内容(string属性)以及目前选中的选项(value属性)
str='';                %初始化变量str为空
set(handles.edit, 'string',str);   %设置可编辑文本的内容(string属性)
 

函数格式可参考可参考MATLAB函数及文件一文。

set函数设置控件的属性可参考GUI应用一文的控件-属性。

       上述代码添加后,可运行T.m文件,会弹出UI界面,可以查看这些代码做了什么。

按键回调函数

首先回到GUIDE中,打开方法如下:

  1. 右键“当前文件夹”窗口的.fig文件,点击“在GUIDE”中打开。
  2. 在“命令行”窗口输入“guide”后,选择“打开现有GUI”,选择相应的.fig文件。

       打开后,右键“普通按钮”-查看回调-点击Callback,此时“编辑器”窗口跳转到T.m文件的button_Callback函数中(函数名称的前面是控件的Tag),为该函数添加相应代码,如下所示。

function button_Callback(hObject, eventdata, handles)
global str;                           %这里变成了声明全局变量global(因为已被定义)
Menu = get(handles.menu, 'String');   %获取弹出式菜单的内容,实际上该项是不变的
Value = get(handles.menu, 'Value');   %获取弹出式菜单目前所选中的内容
str = [str,Menu{Value}];              %将选中的内容添加到str
set(handles.edit, 'String', str);     %将str的内容显示到可编辑文本

       此时,整个工程完成,点击运行T.m文件,点击按钮,可将”弹出式菜单“目前选中的内容写入”可编辑文本“中,并且之前的内容不会被覆盖。

实际上本工程中,用控件“列表框”比“弹出式菜单”会好用一点,而且使用方式也几乎一模一样,但弹出式菜单确实比较常用。

通过本文的介绍,通过matlab创建UI界面应该问题不大,对其它控件的使用介绍可参考GUI应用一文。

本工具是一款面向初学者的电力系统潮流仿真工具,数据输入格式和操作方法与 PSASP 电力系统分析软件类似,但功能更加精简,专注于电力系统潮流计算。目前软件可支持常规潮流计算(PQ 分解法、牛顿拉夫逊法)功能、潮流计算结果输出报表功能和连续潮流计算分析功能。目前软件已在 WSCC9 节点系统进行测试,潮流计算结果与 PSASP 相比,误差在 1e-4~1e-5 数量级左右,此计算精度证明了软件后端代码的正确性。 什么是GUImatlab编程可以设计GUI吗? GUI定义:GUI指的是图形用户界面(Graphical User Interface,GUI),也称之为图形用户接口,GUI是用图形化方式显示的计算机操作用户界面(可视化)。 我们通常都是使用matlab来做计算,matlab还可以设计GUI?... 用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和方法。如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。图形用户界面(GraphicalUserInterfaces,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。假如读者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑GUI的制作。... 某个天朗气清的下午,老师给我布置了一个Matlab GUI 界面设计的任务,然后欢天喜地回家结婚去了,留我在美好的假期里继续孤零零地在学校里耕耘。好的,在此先祝贺老师新婚快乐,百年好合。然后咱们开始从零开始,一边学,一边做。 作为一个GUI小白,当然不能盲目瞎胡来。我们首先要了解gui设计的一些基本的知识,比如如何添加控件、修改控件名称、如何定义变量、获取变量、怎么传递变量等等。这些在网络上都可以搜的到,在此不多赘述了。这边奉上几个小链接,都是很好的学习资料,大佬们总结的太好了。 1.matlab如何创建图