日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MAATLAB GUI——回调函数的设置(Callbacks)

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MAATLAB GUI——回调函数的设置(Callbacks) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.回調函數創建步驟

1)命令窗口中輸入guide,創建一個新的GUI界面窗口

2)從左側的組件欄選擇需要的組件進行布局

3)選中一個組件,雙擊進行組件的屬性設置(Tag、String)

4)設置好屬性后,對需要執行回調函數的組件進行回調函數的設置,右鍵單擊組件,進入回調函數編輯

問題提出?

2.常見疑問解答hObject, eventdata, handles等

1)回調函數中的hObject, eventdata, handles是什么意思?

2)組件之間是通過什么進行聯系(handles),又是通過什么進行區別的(Tag)?

3)怎么調用其他組件中的數據?

4)怎么對組件設置指定的文本?

5)組件之間的數據是怎么進行共享的?

3.相關鏈接供參考


1.回調函數創建步驟

?????? 這里以一個四則運算為例進行說明,實現的功能是,在輸入數據后,按下相應的按鈕,會進行計算并且將結果呈現在相應的組件上

1)命令窗口中輸入guide,創建一個新的GUI界面窗口

2)從左側的組件欄選擇需要的組件進行布局

3)選中一個組件,雙擊進行組件的屬性設置(Tag、String)

4)設置好屬性后,對需要執行回調函數的組件進行回調函數的設置,右鍵單擊組件,進入回調函數編輯

% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.text6,'String',"+"); str1 = get(handles.edit1,'String'); % 獲得文本框的文本內容,此時為字符串類型 num1 = str2double(str1);% 將獲得的字符串轉換成數字類型 str2 = get(handles.edit2,'String'); % 獲得文本框的文本內容,此時為字符串類型 num2 = str2double(str2);% 將獲得的字符串轉換成數字類型 res = num1 + num2; set(handles.edit3,'String',res);

問題提出?

是不是看到這里會很多疑問,比如:

1)回調函數中的hObject, eventdata, handles是什么意思?

2)組件之間是通過什么進行聯系,又是通過什么進行區別的?

3)怎么調用其他組件中的數據?

4)組件之間的數據是怎么進行共享的?

5)怎么對組件設置指定的文本?

當時我也有疑問,在一個帖子上看到了相關的回答,自己做了一些補充,大家可以看一下

?

2.常見疑問解答hObject, eventdata, handles等

1)回調函數中的hObject, eventdata, handles是什么意思?

答:

參考鏈接:https://blog.csdn.net/smf0504/article/details/51832374?_t_t_t=0.11396357929334044

***hObject是當前回調函數對應的GUI對象的句柄;
***eventdata為未定義的保留參數,即當前控件的相關變量;
***handles是當前GUI所有數據的結構體,包含所有GUI對象的句柄和用戶定義的數據;
***varargin在初始化時是空的,在觸發控件時,變成一個1X4的單元數組;
第一個varargin{1}表示觸發控件后所要執行的回調函數的函數名。
如果想把一個局部變量變成全局變量,一個有效的方法是將變量存在handles中,獲取handles結構體某個變量值的方法是x=handles.a。

2)組件之間是通過什么進行聯系(handles),又是通過什么進行區別的(Tag)?

答:

聯系——在同一個GUI內的所有數據都有一個共同的結構體,即handles,這個結構體在創建了gui保存后會自動進行創建,含有所有組件對象的句柄以及相應的數據,而組件也是通過這個聯系在一起的,使得所有在同一個gui的組件具有共同的結構體,不會和其他的gui的組件混淆在一起;

區別——在同一個handles下的每一個組件都有自己的屬性,而在屬性中有一個屬性是標簽名Tag,這是每一個組件獨一無二的名字,因此組件之間是通過標簽來進行區分彼此的;

作用——handles.標簽名,可以用于對指定標簽的屬性進行設置。

3)怎么調用其他組件中的數據?

答:

通過以下代碼進行組件文本的提取,提取到的是一個字符串類型

get(handles.組件的標簽名,"要設置的組件的屬性")示例: str1 = get(handles.edit1,'String')%返回字符串類型

如果文本是數字組成的字符串,要想獲得數據類型,則需要使用到str2double()函數

num1 = str2double(str1)%得到一個雙精度浮點數

4)怎么對組件設置指定的文本?

答:

通過以下代碼進行組件文本的設置

set(handles.組件的標簽名,"要設置的組件的屬性名","要設置的內容")示例: set(handles.text6,'String',"+")

5)組件之間的數據是怎么進行共享的?

答:

同一個gui中組件的屬性和數據都會保存在handles結構體中,在回調函數下,對相應組件的文本進行提取,即可對其進行操作,

如本例中,按下加號按鈕,對兩個數進行加法計算,加法計算前,得先獲取編輯文本中的文本內容,在按下按鈕后進行加法操作

3.相關鏈接供參考

https://blog.csdn.net/smf0504/article/details/51832374?_t_t_t=0.11396357929334044

https://jingyan.baidu.com/article/363872ec0c7ae96e4ba16f00.html

https://blog.csdn.net/persistlzy/article/details/53309467

https://wenku.baidu.com/view/5fefde1076eeaeaad1f330d0.html

總結

以上是生活随笔為你收集整理的MAATLAB GUI——回调函数的设置(Callbacks)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。