[問題] GUI的function之間資料互傳

看板MATLAB作者 (Tremendo!)時間13年前 (2012/12/18 17:15), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
我想做一個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)

12/18 20:13, , 1F
我直接複製貼上 加入兩個end 就可執行 抓的到x
12/18 20:13, 1F

12/18 20:14, , 2F
還有必須把新的x丟回Addpush的userdata 每次按才+1
12/18 20:14, 2F

12/18 20:16, , 3F
有關資料傳遞 目前習慣用setappdata與getappdata
12/18 20:16, 3F

12/18 20:17, , 4F
藏在某個元件 互相抓取
12/18 20:17, 4F

12/19 13:09, , 5F
水喔
12/19 13:09, 5F

12/19 19:29, , 6F
謝謝 來去試試
12/19 19:29, 6F
文章代碼(AID): #1Gq3HCYS (MATLAB)
文章代碼(AID): #1Gq3HCYS (MATLAB)