Re: [問題] GUI 讀取edit鍵入值已回收

看板MATLAB作者 (O咖稱)時間14年前 (2010/06/06 04:28), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《panzertp (失ゎれた彩畫)》之銘言: : ※ 引述《music1125 (PENTAX Optio 30)》之銘言: : : 在前面一開始有先設 handles.a1 = 0; : : edit的Tag名稱為Ta1: : : function Ta1_Callback(hObject, eventdata, handles) : : a1 = get(Ta1_Callback,'Value'); : : handles.a1 = a1; : : guidata(hObject, handles); : : 後面有寫一個botton來讀a1的值: : : function Trun_Callback(hObject, eventdata, handles) : : a1 = handles.a1; : : a1 : : 所以當我在Ta1裡面填入0.1並按執行的botton時 : : 應該在下面的Command視窗會看到a1 = 0.1 : : 但是他依然顯示a1 = 0 (原始設定值) : : 也就是說我沒有讀到鍵入值 : : 想請問一下前輩們 : : 我是哪個步驟有寫錯嗎? : : 再次謝謝大家的教導 : 我想你誤解了GUI控制項裡面value的用法 : 當你在GUI裡改變edit的"數字"時 : 事實上你改變的是該edit控制項裡的"字串"(String) 並非value : 因此當你在使用a1 = get(Ta1_Callback,'Value');時 得到的是value的預設值 : 而不是改變後的"字串" : 因此應該要用的是a1=str2double(get(handles.a1,'String')); 小弟最近在自學matlab語言,於是自己寫了一個小小程式。 後來又想在程式中寫個GUI介面,由於是個大新手, 所以效法版上前人的程式開始摸索。 我想達成在Edit中寫入一個數字,然後按下另外一個PushButton, 就可以輸入 Gn(變數名)=(Edit中的數字) 但是... 我這樣寫卻無法執行。請問板上大大...為啥前人說沒問題的程式,我卻跑不出來= =a 跪求指教... 感謝主 片段程式碼(已成功跑出 edit 以及 PushButton 在畫面上,但輸入edit卻有error) h2 = uicontrol('Style','Edit','String',... 'Gn','Position',[315,235,70,25]... ,'Callback','h2_Callback'); function h2_Callback(hObject, eventdata, handles) handles=0 Gn=str2double(get(handles.h2,'String')); handles.Gn = Gn; guidata(hObject, handles); end h2enter= uicontrol('Style','PushButton','String',... 'Enter','Position',[390,235,50,25]... ,'Callback','h2enter_Callback'); function h2enter_Callback(hObject, eventdata, handles) Gn = handles.Gn Gn end 以上 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.114.81.173 ※ 編輯: harry750265 來自: 58.114.81.173 (06/06 04:30)

06/06 20:24, , 1F
看GUI 的DEMO應該會很有幫助
06/06 20:24, 1F

06/06 22:23, , 2F
搞定了
06/06 22:23, 2F
文章代碼(AID): #1C2hDc2G (MATLAB)
文章代碼(AID): #1C2hDc2G (MATLAB)