作者jack750822 (只有一个杰克)
看板MATLAB
标题[问题] 完整的GUI inputdlg 程式
时间Wed Jul 31 17:39:19 2013
嗯~
单纯只用inputdlg就可以呼叫一个输入文字的对话视窗
不过要怎麽用判断式让整个对话视窗完整没有错误呢?
如果是我自己用的话好像不用管他 因为不会输入错东西
但是如果要把程式写完整 不管做什麽事情程式都运作正常的话想好久不知道该怎麽写@@
单只有一行
a = inputdlg('input a number','msg')
的话
会有以下情况
都不输入只按enter会收到a={''}
按cancel 会收到a={}
输入数字像是5 会收到a={'5'}
文字就是像是a 会收到a={'a'}
如果我要指定只能输入整数(不可以空白英文中文符号之类)
要怎麽用if来包装才不会在command window里看到红字呢@@?
我的部份程式是这样
if (size(a) == [0, 0])
% 按 cancel
msgbox('Cancel', 'Messenge', 'warn');
elseif (a{1,1} == '')
% 按 OK 但什麽都没输入
msgbox('Enter a number.', 'Messenge', 'warn');
elseif (isnumeric(a{1,1})==0)
有输入但是不是数字
msgbox('Enter a number, not text.', 'Messenge', 'warn');
else
输入正确要做的事情
(略)
end
看起来好像没问题不过两个elseif逻辑上有重叠的地方
似乎是可以只用第二个elseif带过
不过如果我在文字框输入超过一个字母的文字 像是
XD 就会有红字错误
说是矩阵大小不一样@@"
而且错误是在a{1,1} == ''这个判断里 可是他明明就应该是在第三个判断的啊@@"
有点奇怪..
如果这四个状况都要保留的话应该要怎麽做呢?
谢谢@@"
--
│ █ █ │ █ █ █ │ █ █ │ █ █ █ │ █ █ │ █ █ █ │ █ █ │
│ █ █ │ █ █ █ │ █ █ │ █ █ █ │ █ █ │ █ █ █ │ █ █ │
│ █ █ │ █ █ █ │ █ █ │ █ █ █ │ █ █ │ █ █ █ │ █ █ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.156.43
※ 编辑: jack750822 来自: 140.113.156.43 (07/31 17:42)