這是我第一篇文章,所以大家好!如何禁用MATLAB GUI元素在處理函數期間(而不是之後)
我的問題是關於MATLAB GUI界面。在我的代碼中,有一個來自按鈕的函數回調,並且我想在處理此回調期間禁用GUI中的每個推/滑動元素。不幸的是,當我在回調開始時將這些元素的'enable'屬性設置爲'off',然後在最後將其設置爲'on'時,屬性不會改變。 我想我知道它爲什麼會發生。可能是因爲如果回調改變了任何東西,它就發生在函數完成之後,並且它內部的每個更改都不會影響函數之外的任何元素,直到處理完成。這就是爲什麼我沒有看到所有這些元素都被禁用 - 因爲在函數結束時,我將所有內容都設置爲「開啓」,這是唯一發生的事情。 對此 - 有沒有任何選項可以在執行函數期間更改「啓用」屬性?代碼如下所示:
function [] = mListLaunchButton_call(varargin)
// Some global declarations
global a phi launchBlanker
global servoNumber servoZeroPosition servoDegreePerDegree servoDirection
// Assigning a class
Manual = varargin{3};
// Enabling "Stop" button and disabling everything else
set(Manual.listStopButton,'enable','on');
set(Manual.listSaveButton,'enable','off');
set(Manual.listDeleteButton,'enable','off');
set(Manual.listClearButton,'enable','off');
set(Manual.listLaunchButton,'enable','off');
set(Manual.closeButton,'enable','off');
for i = 1 : 5
set(Manual.sliderDOF(i),'enable','off');
end
%%%%%%%%%%%%%%%%%%%% HERE FUNCTION DOES SOME STUFF %%%%%%%%%%%%%%%%
// Disabling "Stop" button and enabling eveything else
set(Manual.listStopButton,'enable','off');
set(Manual.listSaveButton,'enable','on');
set(Manual.listDeleteButton,'enable','on');
set(Manual.listClearButton,'enable','on');
set(Manual.listLaunchButton,'enable','on');
set(Manual.closeButton,'enable','on');
for i = 1 : 5
set(Manual.sliderDOF(i),'enable','on');
end
我不確定明白究竟是不是工作抱歉哈哈。 ui控件是否在函數開始時被正確禁用,或者它們似乎始終處於啓用狀態?如果你評論「函數做了些什麼」的部分呢?控件是否被禁用然後啓用? – 2015-02-23 18:06:10
感謝您的回覆,問題是GUI在回調開始後的程序後未被禁用。在評論「功能做一些東西」仍然是一樣的。 我想說的是,該函數可能會執行任何事情後,它結束執行自己。所以,如果我禁用前按鈕。 5秒鐘後再次啓用,按鈕啓用,因爲一切都發生在功能內部。唉,我不知道該怎麼說...函數只執行變量或實例的最後一次更改?我認爲這是重點。 – NotMyF4ult 2015-02-23 18:38:43