2013-05-15 28 views
0

我正在開發一個使用GUIDE在MATLAB上進行圖像處理的工具。我有一個小障礙來糾正它。問題是:如何在MATLAB的uigetpref對話框中禁用按鈕?

*

用戶被要求選擇在工具上的兩個圖像(在 不同軸)中的一個,然後該圖像的所述手柄被傳遞使用 爲函數進一步處理。我爲此使用了函數UIGETPREF 。當 某些條件成立時,我想要禁用此對話框中的一個按鈕。我怎樣才能做到這一點?文檔 不列出任何此類選項。

  • 指令:

    selectedButton = uigetpref(... 
    'mygraphics',...       % Group 
    'imageselection',...   % Preference 
    'Select Image',...      % Window title 
    {'Please select a picture to enable labelling on.' 
    '' 
    'The labelled points will be shown in other two axes after completion'},... 
    {1,2;'Image A','Image B'},...  % Values and button strings 
    'ExtraOptions','Cancel',...    % Additional button 
    'DefaultButton','Image A',...  % Default choice 
    'HelpString','Help',...     % String for Help button 
    'HelpFcn','doc(''Axes'');'); 
    

謝謝。

+0

你的意思是一個條件下,你希望你的對話框顯示按鈕' ImageA'和'ImageB',在另一個條件下只是一個'ImageA'的按鈕? –

+0

編號實際上,它應該在所有情況下顯示按鈕,但顯示爲灰色(禁用)。 – Tomar

回答

0

如果您希望該按鈕變灰或禁用,則需要構建自己的對話框而不是使用uigetpref,或者您需要以某種方式找到隱藏的uigetpref對話框的句柄,並且手動灰化按鈕。

如果你只是想有按鈕的顯示與否取決於你的狀態顯示,嘗試這樣的代碼的東西:

mycondition = true; 
% mycondition = false % Uncomment to test 

switch mycondition 
    case true 
     buttonDetails = {1,2;'Image A','Image B'}; 
     defaultButton = 'Image B'; 
    case false 
     buttonDetails = {1;'Image A'}; 
     defaultButton = 'Image A'; 
end   

selectedButton = uigetpref(... 
'mygraphics',... 
'imageselection',... 
'Select Image',... 
{'Please select a picture to enable labelling on.' 
'' 
'The labelled points will be shown in other two axes after completion'},... 
buttonDetails,... 
'ExtraOptions','Cancel',... 
    'DefaultButton',defaultButton,... 
'HelpString','Help',... 
'HelpFcn','doc(''Axes'');'); 
相關問題