如何在matlab中进行GUI编程 |
您所在的位置:网站首页 › matlab如何打开gui › 如何在matlab中进行GUI编程 |
matlab gui编程的基本思想如下: Set up the figuresEnter the message loop(设置数字并进入消息循环) 通过使用matlab gui编辑器(guide)来处理这两个步骤。重要的是,您将程序流的控制权交给了消息循环。为了完成任务,您可以告诉消息循环在发生事情时调用函数。 在gui编辑器中,右击按钮并选择"View Callback -> Callback“。这将在您的.m文件中自动创建这样一个函数,您可以在其中指定当您按下按钮时发生的事情。 为了更好地理解,请看一下按钮的回调属性。Guide将输入类似add('push_calc_Callback',hObject,eventdata,guidata(hObject))的内容,它调用主函数(add)作为新回调函数的包装器。您可以在属性编辑器中自行完成此操作,也可以在启动代码中以编程方式完成此操作。 我猜您希望发生以下情况: values Perform calculationSet edit1的字符串值和edit2将字符串转换为数字text3的字符串值转换为 的字符串表示 通过将可用的句柄用作第三个函数参数以及get和set函数,可以访问gui元素的属性。句柄结构由guide创建,元素的名称与您指定的标记相同。 在matlab代码中,这可能如下所示: % --- Executes on button press in push_calc. function push_calc_Callback(hObject, eventdata, handles) % hObject handle to push_calc (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) x_string = get( handles.edit1, 'String'); y_string = get( handles.edit2, 'String'); x_numeric = str2num( x_string ); y_numeric = str2num( y_string ); result_numeric = x_numeric * y_numeric; result_string = num2str( result_numeric ); set( handles.result, 'String', result_string);编辑:问题是什么是handles.edit1,以此类推。无论何时你想要用一个小部件来做一些事情,比如一个按钮或者一个文本框,你必须能够告诉matlab你所指的小部件到底是什么。Guide在幕后做了一些事情。其中之一是调用uicontrol,它创建小部件并返回一个随机但唯一的数字。这有点像银行帐号,因为它是可用于操作资源的handle。当您在guide中创建新的按钮并在属性编辑器中指定标签"clickme“时,guide将创建该按钮并将句柄存储在structure handles.clickme中。这为您提供了一种简单的方法来获取您创建的任何小部件的句柄,前提是您仍然记得为它分配了什么标记。 让我们看一下函数的第一行: x_string = get( handles.edit1, 'String');它使用您不应该关心的数字调用函数get,只要它是matlab与edit1小部件关联的相同数字,以及来自属性编辑器的属性名称,在本例中为'String‘。这与您单击所有窗口元素,直到属性编辑器显示'edit1‘标记相同,对于该对象,您可以找到名为'String’的属性的值。 每当您键入新文本、移动滑块、更改窗口大小等时,属性都会自动更新。反之亦然。如果您使用set( handles.edit1, 'Position', [20 20 100 30])修改' position‘属性,则小部件将自动移动并调整大小到指定位置。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |