Reading from GUI edit boxes using a self made function
2 次查看(过去 30 天)
显示 更早的评论
Hello!
I'm creating a GUI application which contains, among other things, several edit boxes tagged joint1 through joint7. Since I don' want to have to read separately from each of them every time, I created a read function. First I defined a variable from which they'd be called in the main program:
internal_coord=['joint1';'joint2';'joint3';'joint4';'joint5';'joint6';'joint7']
and the function as:
function status=read(object)
k=size(object);
d=k(2);
k=k(1);
for i=0:k-1
adr=object(i+1,1:d);
status(i+1)=str2num(get(handles.(adr),'String'))
end
which would be called as read(internal_coord). I've tried this in the main program and it works normally, but when I try using the function it writes out an error: "Undefined variable "handles" or class "handles.joint1". I must admit that I don't know much of how handles are defined, but I presume the problem is that the function can't reach the edit boxes.
Any ideas how to solve that?
Luka Drobilo
0 个评论
采纳的回答
Matt Fig
2012-11-9
编辑:Matt Fig
2012-11-9
Where is that function located? Is it in the GUI m-file or a separate m-file? From where are you calling it? Are you calling it from a callback?
If the function is in the GUI m-file and you are calling it from the callback of, say, a pushbutton, then simply amend the function like this:
function status=read(object,handles)
Then when you call it from the callback, pass the object arg and the handles.
更多回答(1 个)
Sean de Wolski
2012-11-9
Hi Luka,
I see two possibilities for the behavior you are seeing:
- Are you running the *.m file or just opening the figure? You have to run the *.m file, opening the figure directly will cause this error since the opening stuff hasn't happened.
- IS this code in your GUI's OpeningFcn? If it is, it is possible that the boxes have not been created yet.
I am guessing it is option 1.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interactive Control and Callbacks 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!