如何在matlab中进行GUI编程
我正在尝试学习matlab中的GUI编程,为此我正在尝试创建一个简单的乘法计算器。我在没有GUI的情况下用matlab编写了一些程序,但我在理解matlab中的GUI编程时遇到了困难。我已经创建了GUI,但我不知道如何为此进行编程 这是我做的GUI如何在matlab中进行GUI编程,matlab,matlab-guide,Matlab,Matlab Guide,我正在尝试学习matlab中的GUI编程,为此我正在尝试创建一个简单的乘法计算器。我在没有GUI的情况下用matlab编写了一些程序,但我在理解matlab中的GUI编程时遇到了困难。我已经创建了GUI,但我不知道如何为此进行编程 这是我做的GUI 我以“add”的名称保存了给定的GUI,并创建了add.m。您能告诉我如何为给定的gui进行编程吗。matlab gui编程的基本思想如下: 设置数字 输入消息循环 这两个步骤都是通过使用MatlabGUI编辑器(指南)完成的。重要的是,您将程序流
我以“add”的名称保存了给定的GUI,并创建了add.m。您能告诉我如何为给定的gui进行编程吗。matlab gui编程的基本思想如下:
add('push\u calc\u Callback',hObject,eventdata,guidata(hObject))
的内容,它调用主函数(add)作为新回调函数的包装。您可以在属性编辑器中自己完成,也可以在启动代码中以编程方式完成
我想你希望发生以下事情:
% --- 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您所指的小部件。导游在幕后做了几件事。其中之一是调用,它创建小部件并返回一个随机但唯一的数字。这有点像一个银行账号,因为它是一个可以用来操纵它的资源的密码。在向导中创建新按钮并在属性编辑器中指定标记“clickme”时,向导将创建按钮并将句柄存储在句柄中。clickme
。这为您提供了一种简单的方法来获取您创建的任何小部件的句柄,前提是您仍然能够记住分配给它的标记
让我们看一下函数的第一行:
x_string = get( handles.edit1, 'String');
只要它与matlab与edit1小部件关联的数字相同,并且是属性编辑器中的属性名称(在本例中为“字符串”),就不应该关心调用函数的数字。这与在所有窗口元素中单击相同,直到属性编辑器显示“edit1”标记,并且对于该对象,您可以找到名为“String”的属性值
每当您键入新文本、移动滑块、更改窗口大小等时,属性都会自动更新。反过来也是如此。如果使用
set(handles.edit1,[20 20 100 30])修改“Position”属性
,然后小部件会自动移动并重新调整到指定的位置。我想你已经看到了:@0x90我看到了,但仍然很混乱。你能帮我使用上面的gui吗?嘿,谢谢你的代码。我试过了,它工作了。但是你能解释一下代码吗;什么是handles.edit1,handles.edit2和handles.result它做什么我把答案扩大了一点。我希望它不会太混乱。如果是,试着做一些非常简单的事情。绘图,在命令窗口中键入gcf以获取当前图形的控制柄,或键入gca以获取当前轴的控制柄。然后尝试get(gcf),它将生成一个包含所有属性的文本墙。
x_string = get( handles.edit1, 'String');