MATLAB制作GUI(3)-下拉列表的实现

今天我们打算使用MATLAB中的GUI功能制作一个函数曲线绘制的GUI,其中将会讲到下拉列表的实现这一新的功能,下面是我实现的GUI的界面:

创建过程很简单, 具体的过程我就不在这里详细介绍,在GUI编辑功能中的样子是下面这样的,其中使用了下拉列表、可编辑文本、静态文本、按钮、图像显示框等功能:

 这里我将详细介绍下拉列表功能的实现,添加下拉列表组件之后,双击会出现相应的检查器,设置下拉列表的内容:

点击箭头指向的按钮,会出现下拉列表内容编辑器,在其中输入自己想设置的内容,每一行为一个选项,第一行为默认显示的内容:

在这个例子中,我们添加了两个下拉列表选项,分别设置曲线的颜色和大小。下面我们就要实现相应的功能了:

首先我们要实现下拉列表内容的读取,因此我们就要修改下拉列表的Callback函数内容:

通过get函数获取我们所选择的下拉列表中的内容,注意:这里很容易产生误区,以为我们获取的是我们填入其中的内容,如‘红色’、‘黑色’、‘蓝色’等其实我们这里获取的不是其内容,而是行号,第一行的行号为1,第二行为2,以此类推,因此函数为get(handles.popupmenu1,'Value')。因为Lc的值我们在其他的函数中进行调用,因此我们使用了全局变量global。两个下拉列表的Callback函数是类似的。

最后,我们定义按钮的Callback函数,实现整个GUI的功能:

注意:因为我们绘制的是隐函数的曲线,因此要使用ezplot函数进行绘制。

最后实现了绘制函数曲线的GUI:

最后,我们再实现一个小功能:当鼠标初次点击可编辑文本时,清除其中的指示内容,本例中的是“请输入函数”。

这是我们要定义可编辑文本的另一个函数edit2.ButtonDownFcn函数,该函数是当鼠标点击edit2时实现的其中的函数功能:

首先我们要先将edit2的Enable属性设置为‘inactive'(inactive,ButtonDownFcn函数有效;off和on时,ButtonDownFcn都无效,然而off时不可以进行编辑,on时可以进行编辑),之后更改edit2.ButtonDownFcn函数:

当点击可编辑文本时,set函数先将其中的内容清除,在使用uicontrol函数将鼠标聚焦在可编辑文本中(如果不理解什么意思,可以自己试一下有无这个函数的效果)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章