作者diva (Tremendo!)
看板MATLAB
標題[問題] GUI的function之間資料互傳
時間Tue Dec 18 17:15:53 2012
我想做一個gui
不用guide的方式產生介面而使用uicontrol產生
我把我想做的問題簡化成
做一個AddPush按鈕在gui上
每按一次AddText上面的數字就會+1
並且利用function的方式來寫callback
且所有的function
全部都寫在同一個*.m檔案當中
我想知道有沒有
除了global變數之外的方法
或者有沒有解說用guide產生gui後自動產生了一堆程式碼的導讀文章
裡面一些東西自己讀help看不太懂
ex hObject eventdata guidata gui_mainfc 等等
我自己試寫的code 可是不work
function Main % 主程式 版面建置
clear all
close all
clc
FigMain=figure ;
figure(FigMain) ;
x=3 ;
AddPush=uicontrol('style','push','string','Add',...
'pos',[100 100 100 30],...
'callback',@Add,'userdata',
x) ;
^
假設AddPush和AddText程式順序不可換
無法在此行把AddText丟入function Add當中
AddText=uicontrol('style','text','string',num2str(x),...
'pos',[200 100 100 30]) ;
function Add(varargin) % 副程式 加1
^^^^^^^^ 為什麼一定要加這個東西才不會出現錯誤
x = get(gcbo,'userdata') ;
x=x+1 ;
set(AddText,'string',num2str(x))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
無法讀到function Main裡面的東西
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.103.220
※ 編輯: diva 來自: 140.112.103.220 (12/18 17:23)
推 s123123sam:我直接複製貼上 加入兩個end 就可執行 抓的到x 12/18 20:13
→ s123123sam:還有必須把新的x丟回Addpush的userdata 每次按才+1 12/18 20:14
→ s123123sam:有關資料傳遞 目前習慣用setappdata與getappdata 12/18 20:16
→ s123123sam:藏在某個元件 互相抓取 12/18 20:17
推 webbber:水喔 12/19 13:09
→ diva:謝謝 來去試試 12/19 19:29