How can I share data in nested functions of a GUI?
이전 댓글 표시
Hello, I'm not able to share data among nested functions of a GUI using the figure handle, namely the number of clicks on a figure. I'm able to do it only using a global variable. How could I use the handle instead of the global variable? Many thanks! This is my code:
I first define the global variable and then run the function in the workspace:
>>global globalVar >>h = shareData
Then here are the nested functions:
function handle=shareData() fprintf('Starting GUI\n') handle.fig = figure(); global globalVar; globalVar.Nclicks=0; handle.Nclicks=0; fprintf('Before set\n') globalVar handle set(handle.fig,'WindowButtonDownFcn',{@clickPosition,handle})
function handle=clickPosition(hObject, eventdata, handle) global globalVar; get(handle.fig,'CurrentPoint'); globalVar.Nclicks=globalVar.Nclicks+1; handle.Nclicks=handle.Nclicks+1; if globalVar.Nclicks==1 fprintf('After 1 click\n') else fprintf(['After ' , num2str(globalVar.Nclicks), ' clicks\n']) end globalVar handle
댓글 수: 1
Jan
2013년 9월 11일
Please follow the "? Help" link to learn how to format code in the forum. Thanks!
답변 (2개)
Jan
2013년 9월 11일
0 개 추천
There are many many threads concerning sharing data between functions of a GUI in this forum. Therefore I suggest to search for "share data gui":
Arthur
2013년 9월 11일
0 개 추천
evalin and assignin are generally speaking not great ways to do this. Have a look at getappdata & setappdata. Have a look at this video:
카테고리
도움말 센터 및 File Exchange에서 Data Type Identification에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!