【崇州、邛崃至崇州时刻表查询】撤市改区,你支持谁?是真的吗?

6591人阅读
本文档通过一个简单的实例让你学会matlab GUI的制作流程。首先,图形用户界面GUI(Graphical User Interfaces)是一种用户和计算机进行信息交流的工具和方法,由各种图形对象组成。在这种用户界面下,用户的命令和对程序的控制是通过鼠标等输入设备“选择”各种图形对象来实现的。开发者只需在由软件开发工具自动生成的程序代码中添加自己的运算或控制代码,就可以完成应用程序的设计。
1.新建一个GUI文件:选择BlankGUI(Default)
2.进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下图所示;(+ =
数据1 绿色显示框等都是静态文本框)
布置好各控件以后,就可以来为这些控件编写程序来实现两数相加的功能了。
3.为数据1文本框添加代码
点击上图所示红色方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。
function edit1_Callback(hObject,eventdata, handles)
% hObject handle to edit1 (seeGCBO)
% eventdata reserved - to bedefined in a future version of MATLAB
% handles structure withhandles and user data (see GUIDATA)
% Hints: get(hObject,’String’)returns
contents of edit1 as text
% str2double(get(hObject,’String’))returns
contents of edit1 as a double
然后在上面这段代码的下面插入如下代码:
%以字符串的形式来存储数据文本框1的内容.如果字符串不是数字,则现实空白内容
input =str2num(get(hObject,’String’));
%检查输入是否为空.
如果为空,则默认显示为0
(isempty(input))
& set(hObject,’String’,’0’)
guidata(hObject,handles);
这段代码使得输入被严格限制,我们不能试图输入一个非数字。
4.为edit2_Callback添加同样一段代码
5.为计算按钮添加代码来实现把数据1和数据2相加的目的。
用3中同样的方法在m文件中找到pushbutton1_Callback代码段如下;
functionpushbutton1_Callback(hObject, eventdata, handles)
% hObjecthandle to pushbutton1 (see GCBO)
% eventdatareserved - to be defined in a future version of MATLAB
% handles structurewith handles and user data (see GUIDATA)
在上面这段代码后添加以下代码;
a = get(handles.edit1,’String‘);&
b = get(handles.edit2,’String‘);
% a and b are variables ofStrings type, and need to be converted
% to variables of Number typebefore they can be added together
total = str2num(a) +str2num(b);&
c = num2str(total);
% need to convert the answerback into String type to display it
set(handles.text1,’String’,c);& % text1为静态文本框(最后绿色显示结果的框)的tag
guidata(hObject,handles);
a = get(handles.edit1,’String‘);b =
get(handles.edit2,’String‘);
上面这行代码把用户输入的数据存入到变量a,变量b中;
% a,b是字符型变量,在计算两者相加之前需把他们转换为数字型
total = str2num(a) +str2num(b);
这段代码实现两数相加
c = num2str(total);
set(handles.text1,’String‘,c);
guidata(hObject,handles);
以上两行代码分别用来更新计算结果文本框和图形对象句柄,一般Callback回调函数都以guidata(hObject, handles);结束以更新数据
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1726064次
积分:24367
积分:24367
排名:第232名
原创:728篇
转载:18篇
评论:269条
(1)(1)(13)(18)(9)(14)(13)(5)(22)(18)(4)(8)(22)(36)(5)(29)(23)(13)(17)(36)(36)(13)(51)(5)(1)(9)(51)(28)(74)(17)(46)(48)(23)(41)查看: 5722|回复: 2|关注: 0
如何设置matlab GUI的当前窗口活动状态属性
<h1 style="color:# 麦片财富积分
新手, 积分 11, 距离下一级还需 39 积分
我现在是想这样设计一个GUI应用程序的,在主GUI里设置不同的按钮来打开不同的GUI进行操作以实现程序相关参数的输入和修改,我想在参数输入修改的GUI还没获得返回值并关闭之前,主GUI处于非活动状态,不知道该怎么设置才能实现,所以特来请教大家,多谢帮忙。
[ 本帖最后由 vincent92 于
00:25 编辑 ]
<h1 style="color:#5 麦片财富积分
关注者: 38
我想是不是可以将visible off掉。这样就不会出错了。具体方法见下
K&& f=handles.figure1;
&& global f
&& set(f,'visible','off');
&& set(f,'visible','on');
1 提问请直接在论坛中发帖,不要发站内消息给我。
2 不要在QQ中问我提问,这样很浪费时间
<h1 style="color:# 麦片财富积分
回复 2# edifiers2008 的帖子
谢谢,用visible off掉确实可以避免出错,但是这样一来这个主GUI也就看不到了,不是很方便。我后来查了下handles.figure的参数设置,发现可以通过设定windowstyle的方法来达到目的,方法是在子GUI的open函数中,加入:
set(handles.figure1,'windowstyle','modal');
这样这个子窗口在活动的时候,matlab的其他窗口都是不活动的,直至到这个窗口关闭
站长推荐 /2
Powered by查看: 2937|回复: 5|关注: 0
gui界面给simulink模块传递参数
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
new_system('example01');
open_system('example01');
vala=str2num(get(handles.A,'string'));
valb=str2num(get(handles.B,'string'));
valc=str2num(get(handles.C,'string'));
vald=str2num(get(handles.D,'string'));
add_block('built-in/step','example01/step','position',[10 20&&50&&60]);
add_block('built-in/state-space','example01/state-space','position',[100 20&&180&&60],...
& && && && &&&'a','vala',...
& && && && &&&'b','valb',...
& && && && &&&'c','valc',...
& && && && &&&'d', 'vald');
a,b,c,d 是state-space'的四个矩阵参数,从gui界面怎么传给state-space'模块?
vala=str2num(get(handles.A,'string'));& && && &&&%获取界面空间的数值
set_param('example01/state-space','a','vala');& & % 将数值赋给参数a.
如何传递数据啊?请教各位。
<h1 style="color:#7 麦片财富积分
关注者: 20
尝试下用assignin把参数放到workspace里面
<h1 style="color:# 麦片财富积分
A=str2num(get(handles.A,'string'));
eval('A');
B=str2num(get(handles.B,'string'));
eval('B');
C=str2num(get(handles.C,'string'));
eval('C');
D=str2num(get(handles.D,'string'));
eval('D');
assignin('base','A',A);
assignin('base','B',B);
assignin('base','C',C);
assignin('base','D',D);
set_param('example01/state-space','A',A,...
& && && && && && && && && && && & 'B',B,...
& && && && && && && && && && && & 'C',C,...
& && && && && && && && && && && & 'D',D);
& && && && && && && && && && && &
add_block('built-in/step','example01/step','position',[10 20&&50&&60]);
add_block('built-in/state-space','example01/state-space','position',[100 20&&180&&60]);
add_block('built-in/scope','example01/scope','position',[230 20&&280&&60]);
add_line('example01','step/1','state-space/1','autorouting','on');
add_line('example01','state-space/1','scope/1','autorouting','on');
sim('example01');
??? Error using ==& set_param
Invalid Simulink object name: example01/state-space.
Error in ==& D:\MATLAB6p5\work001\work\example01.m (pushbutton1_Callback)
On line 110&&==& set_param('example01/state-space','A',A,...
Error in ==& D:\MATLAB6p5\toolbox\matlab\uitools\gui_mainfcn.m
On line 66&&==&& && && &feval(varargin{:});
Error in ==& D:\MATLAB6p5\work001\work\example01.m
On line 42&&==&& &&&gui_mainfcn(gui_State, varargin{:});
??? Error while evaluating uicontrol Callback.
怎么改正啊?
还有一个问题是,用命令修改模块的参数时候,有出现提示:这个模块不存在这个参数,是不是有的参数不能用命令改啊???
<h1 style="color:# 麦片财富积分
你我遇到的问题十分相像,应该是对应模块的参数名称不符。可是找不到能看到参数对话框的方法
<h1 style="color:# 麦片财富积分
回复 2# makesure5 的帖子
您好 我就是想将callback1中的变量a放入workshop空间
再在callback2中使用
如下做法怎么不对?
assignin('base','wa',a);
a=evalin('base','wa');
课题卡住了,虚心听从您的指教
我还是了另一种方法也是不行
handles.x=x;
handles.y=y;
guidata(hObject,handles);
x=handles.x;
y=handles.y;
[ 本帖最后由 铁帅 于
09:53 编辑 ]
<h1 style="color:# 麦片财富积分
谢谢!!!
站长推荐 /2
Powered by光伏太阳能电池组件Matlab通用仿真模块_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
光伏太阳能电池组件Matlab通用仿真模块
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 邛崃至崇州时刻表查询 的文章

 

随机推荐