当前位置:   article > 正文

MATLAB GUI图形化界面设计计算器_matlab 图形界面编程

matlab 图形界面编程

MATLAB GUI界面设计教程可以帮助用户创建交互式的图形用户界面,以简化与MATLAB程序的交互过程。以下是一个简化的教程,指导你如何进行MATLAB GUI界面设计:

1. 启动GUIDE或App Designer

  • GUIDE:在MATLAB命令窗口中输入guide命令,然后按Enter键启动GUIDE。
  • App Designer:在MATLAB的“Apps”标签下选择“App Designer”来启动。

2. 选择模板或新建空白GUI

  • 在GUIDE或App Designer中,你可以选择现有的模板作为基础,或者选择新建一个空白GUI开始设计,其中GUIDE给我们提供了以下四种模板。

  •  App Designer我们提供了以下五种模板。

3. 添加和布局组件 

  • 从组件面板中选择所需的控件,如按钮、文本框、滑动条等,并拖拽到GUI界面上。
  • 调整控件的大小和位置,以创建所需的界面布局。
  • 常见的控件有以下10种:可编程文本是动态文本,静态文本不会变化;axes1是坐标区,用于绘制图像;滑块用于查看长文本或者长图形。
  •  将所需控件组装成以下模样,最上方的文本框是可编辑文本,下方的按钮都是普通按钮:

4. 设置组件属性

  • 双击控件或选择它,并在属性编辑器中设置其属性,如字体、颜色、标签文本等。
  1. BackgroundColor——背景颜色
  2. FontAngle——字体倾斜角度
  3. FontName——字体名称
  4. FontSize——字体大小
  5. FontUnits——字体单元
  6. ForegroundColor——字体颜色
  7. Position——控件位置
  8. String——控件显示名称
  9. Tag——控件真实名称 

5. 编写回调函数

  • 回调函数定义了当用户与GUI中的控件交互时应该执行的操作。
  • 在GUIDE中,你可以双击控件并选择“Create Callback”来生成一个空的回调函数框架。
  • 在App Designer中,选择控件并在右侧的代码编辑器中编写或修改回调函数。
  1. %清空功能
  2. set(handles.edit1,'String','');
  3. %标签功能(0-9,小数点,+-*/)
  4. textString = get(handles.edit1,'String'); %获取可编辑文本的字符串
  5. textString =strcat(textString,'1');%拼接
  6. set(handles.edit1,'String',textString);
  7. %等号功能
  8. textString = get(handles.edit1,'String');
  9. answer=eval(textString);%求解表达式
  10. set(handles.edit1,'String',answer);
  • 将上述代码写入回调函数可获得完整代码,可以根据需求添加小数点、开方等操作。
  1. function varargout = myapp2(varargin)
  2. % MYAPP2 MATLAB code for myapp2.fig
  3. % MYAPP2, by itself, creates a new MYAPP2 or raises the existing
  4. % singleton*.
  5. %
  6. % H = MYAPP2 returns the handle to a new MYAPP2 or the handle to
  7. % the existing singleton*.
  8. %
  9. % MYAPP2('CALLBACK',hObject,eventData,handles,...) calls the local
  10. % function named CALLBACK in MYAPP2.M with the given input arguments.
  11. %
  12. % MYAPP2('Property','Value',...) creates a new MYAPP2 or raises the
  13. % existing singleton*. Starting from the left, property value pairs are
  14. % applied to the GUI before myapp2_OpeningFcn gets called. An
  15. % unrecognized property name or invalid value makes property application
  16. % stop. All inputs are passed to myapp2_OpeningFcn via varargin.
  17. %
  18. % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
  19. % instance to run (singleton)".
  20. %
  21. % See also: GUIDE, GUIDATA, GUIHANDLES
  22. % Edit the above text to modify the response to help myapp2
  23. % Last Modified by GUIDE v2.5 11-Apr-2024 12:06:28
  24. % Begin initialization code - DO NOT EDIT
  25. gui_Singleton = 1;
  26. gui_State = struct('gui_Name', mfilename, ...
  27. 'gui_Singleton', gui_Singleton, ...
  28. 'gui_OpeningFcn', @myapp2_OpeningFcn, ...
  29. 'gui_OutputFcn', @myapp2_OutputFcn, ...
  30. 'gui_LayoutFcn', [] , ...
  31. 'gui_Callback', []);
  32. if nargin && ischar(varargin{1})
  33. gui_State.gui_Callback = str2func(varargin{1});
  34. end
  35. if nargout
  36. [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
  37. else
  38. gui_mainfcn(gui_State, varargin{:});
  39. end
  40. % End initialization code - DO NOT EDIT
  41. % --- Executes just before myapp2 is made visible.
  42. function myapp2_OpeningFcn(hObject, eventdata, handles, varargin)
  43. % This function has no output args, see OutputFcn.
  44. % hObject handle to figure
  45. % eventdata reserved - to be defined in a future version of MATLAB
  46. % handles structure with handles and user data (see GUIDATA)
  47. % varargin command line arguments to myapp2 (see VARARGIN)
  48. % Choose default command line output for myapp2
  49. handles.output = hObject;
  50. % Update handles structure
  51. guidata(hObject, handles);
  52. % UIWAIT makes myapp2 wait for user response (see UIRESUME)
  53. % uiwait(handles.figure1);
  54. % --- Outputs from this function are returned to the command line.
  55. function varargout = myapp2_OutputFcn(hObject, eventdata, handles)
  56. % varargout cell array for returning output args (see VARARGOUT);
  57. % hObject handle to figure
  58. % eventdata reserved - to be defined in a future version of MATLAB
  59. % handles structure with handles and user data (see GUIDATA)
  60. % Get default command line output from handles structure
  61. varargout{1} = handles.output;
  62. % --- Executes on button press in pushbutton1.
  63. function pushbutton1_Callback(hObject, eventdata, handles)
  64. textString = get(handles.edit1,'String');
  65. textString = strcat(textString,'1');
  66. set(handles.edit1,'String',textString);
  67. % hObject handle to pushbutton1 (see GCBO)
  68. % eventdata reserved - to be defined in a future version of MATLAB
  69. % handles structure with handles and user data (see GUIDATA)
  70. % --- Executes on button press in pushbutton2.
  71. function pushbutton2_Callback(hObject, eventdata, handles)
  72. textString = get(handles.edit1,'String');
  73. textString = strcat(textString,'2');
  74. set(handles.edit1,'String',textString);
  75. % hObject handle to pushbutton2 (see GCBO)
  76. % eventdata reserved - to be defined in a future version of MATLAB
  77. % handles structure with handles and user data (see GUIDATA)
  78. % --- Executes on button press in pushbutton3.
  79. function pushbutton3_Callback(hObject, eventdata, handles)
  80. textString = get(handles.edit1,'String');
  81. textString = strcat(textString,'4');
  82. set(handles.edit1,'String',textString);
  83. % hObject handle to pushbutton3 (see GCBO)
  84. % eventdata reserved - to be defined in a future version of MATLAB
  85. % handles structure with handles and user data (see GUIDATA)
  86. % --- Executes on button press in pushbutton4.
  87. function pushbutton4_Callback(hObject, eventdata, handles)
  88. textString = get(handles.edit1,'String');
  89. textString = strcat(textString,'5');
  90. set(handles.edit1,'String',textString);
  91. % hObject handle to pushbutton4 (see GCBO)
  92. % eventdata reserved - to be defined in a future version of MATLAB
  93. % handles structure with handles and user data (see GUIDATA)
  94. % --- Executes on button press in pushbutton5.
  95. function pushbutton5_Callback(hObject, eventdata, handles)
  96. textString = get(handles.edit1,'String');
  97. textString = strcat(textString,'7');
  98. set(handles.edit1,'String',textString);
  99. % hObject handle to pushbutton5 (see GCBO)
  100. % eventdata reserved - to be defined in a future version of MATLAB
  101. % handles structure with handles and user data (see GUIDATA)
  102. % --- Executes on button press in pushbutton6.
  103. function pushbutton6_Callback(hObject, eventdata, handles)
  104. textString = get(handles.edit1,'String');
  105. textString = strcat(textString,'8');
  106. set(handles.edit1,'String',textString);
  107. % hObject handle to pushbutton6 (see GCBO)
  108. % eventdata reserved - to be defined in a future version of MATLAB
  109. % handles structure with handles and user data (see GUIDATA)
  110. % --- Executes on button press in pushbutton7.
  111. function pushbutton7_Callback(hObject, eventdata, handles)
  112. textString = get(handles.edit1,'String');
  113. textString = strcat(textString,'0');
  114. set(handles.edit1,'String',textString);
  115. % hObject handle to pushbutton7 (see GCBO)
  116. % eventdata reserved - to be defined in a future version of MATLAB
  117. % handles structure with handles and user data (see GUIDATA)
  118. % --- Executes on button press in pushbutton8.
  119. function pushbutton8_Callback(hObject, eventdata, handles)
  120. set(handles.edit1,'String','');
  121. % hObject handle to pushbutton8 (see GCBO)
  122. % eventdata reserved - to be defined in a future version of MATLAB
  123. % handles structure with handles and user data (see GUIDATA)
  124. % --- Executes on button press in pushbutton9.
  125. function pushbutton9_Callback(hObject, eventdata, handles)
  126. textString = get(handles.edit1,'String');
  127. textString = strcat(textString,'3');
  128. set(handles.edit1,'String',textString);
  129. % hObject handle to pushbutton9 (see GCBO)
  130. % eventdata reserved - to be defined in a future version of MATLAB
  131. % handles structure with handles and user data (see GUIDATA)
  132. % --- Executes on button press in pushbutton10.
  133. function pushbutton10_Callback(hObject, eventdata, handles)
  134. textString = get(handles.edit1,'String');
  135. textString = strcat(textString,'6');
  136. set(handles.edit1,'String',textString);
  137. % hObject handle to pushbutton10 (see GCBO)
  138. % eventdata reserved - to be defined in a future version of MATLAB
  139. % handles structure with handles and user data (see GUIDATA)
  140. % --- Executes on button press in pushbutton11.
  141. function pushbutton11_Callback(hObject, eventdata, handles)
  142. textString = get(handles.edit1,'String');
  143. textString = strcat(textString,'9');
  144. set(handles.edit1,'String',textString);
  145. % hObject handle to pushbutton11 (see GCBO)
  146. % eventdata reserved - to be defined in a future version of MATLAB
  147. % handles structure with handles and user data (see GUIDATA)
  148. % --- Executes on button press in pushbutton12.
  149. function pushbutton12_Callback(hObject, eventdata, handles)
  150. textString = get(handles.edit1,'String');
  151. answer = eval(textString,'3');%计算表达式
  152. set(handles.edit1,'String',answer);
  153. % hObject handle to pushbutton12 (see GCBO)
  154. % eventdata reserved - to be defined in a future version of MATLAB
  155. % handles structure with handles and user data (see GUIDATA)
  156. % --- Executes on button press in pushbutton13.
  157. function pushbutton13_Callback(hObject, eventdata, handles)
  158. textString = get(handles.edit1,'String');
  159. textString = strcat(textString,'+');
  160. set(handles.edit1,'String',textString);
  161. % hObject handle to pushbutton13 (see GCBO)
  162. % eventdata reserved - to be defined in a future version of MATLAB
  163. % handles structure with handles and user data (see GUIDATA)
  164. % --- Executes on button press in pushbutton14.
  165. function pushbutton14_Callback(hObject, eventdata, handles)
  166. textString = get(handles.edit1,'String');
  167. textString = strcat(textString,'-');
  168. set(handles.edit1,'String',textString);
  169. % hObject handle to pushbutton14 (see GCBO)
  170. % eventdata reserved - to be defined in a future version of MATLAB
  171. % handles structure with handles and user data (see GUIDATA)
  172. % --- Executes on button press in pushbutton15.
  173. function pushbutton15_Callback(hObject, eventdata, handles)
  174. textString = get(handles.edit1,'String');
  175. textString = strcat(textString,'*');
  176. set(handles.edit1,'String',textString);
  177. % hObject handle to pushbutton15 (see GCBO)
  178. % eventdata reserved - to be defined in a future version of MATLAB
  179. % handles structure with handles and user data (see GUIDATA)
  180. % --- Executes on button press in pushbutton16.
  181. function pushbutton16_Callback(hObject, eventdata, handles)
  182. textString = get(handles.edit1,'String');
  183. textString = strcat(textString,'/');
  184. set(handles.edit1,'String',textString);
  185. % hObject handle to pushbutton16 (see GCBO)
  186. % eventdata reserved - to be defined in a future version of MATLAB
  187. % handles structure with handles and user data (see GUIDATA)
  188. function edit1_Callback(hObject, eventdata, handles)
  189. % hObject handle to edit1 (see GCBO)
  190. % eventdata reserved - to be defined in a future version of MATLAB
  191. % handles structure with handles and user data (see GUIDATA)
  192. % Hints: get(hObject,'String') returns contents of edit1 as text
  193. % str2double(get(hObject,'String')) returns contents of edit1 as a double
  194. % --- Executes during object creation, after setting all properties.
  195. function edit1_CreateFcn(hObject, eventdata, handles)
  196. % hObject handle to edit1 (see GCBO)
  197. % eventdata reserved - to be defined in a future version of MATLAB
  198. % handles empty - handles not created until after all CreateFcns called
  199. % Hint: edit controls usually have a white background on Windows.
  200. % See ISPC and COMPUTER.
  201. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
  202. set(hObject,'BackgroundColor','white');
  203. end

6. 保存和运行GUI

  • 在GUIDE中,保存你的GUI,它将生成一个.fig文件(保存布局信息)和一个.m文件(包含初始化代码和回调函数)。
  • 在App Designer中,直接保存并运行你的App。
  • 运行.m文件或App,以查看和测试你的GUI。

7. 调试和优化

  • 使用MATLAB的调试工具来识别和修复任何错误或问题。
  • 根据需要调整布局、颜色、字体等,以优化GUI的用户体验。 

gui视频

注意事项:

  • 命名规范:为控件和回调函数选择描述性的名称,以提高代码的可读性。
  • 注释:在代码中添加注释,解释每个控件和回调函数的作用,以便于后期维护和修改。
  • 用户体验:考虑界面的易用性和美观性,确保用户能够轻松理解和使用你的GUI。

通过遵循以上步骤和注意事项,你可以使用MATLAB创建功能强大且用户友好的GUI界面。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/864177
推荐阅读
相关标签
  

闽ICP备14008679号