2017-06-17 2 views

Répondre

1

Il semble que vous deviez remplacer le gestionnaire d'événements CloseRequestFcn, voir here. Vous ne pouvez pas masquer ou désactiver le bouton de fermeture, mais vous pouvez vous assurer que l'utilisateur qui clique dessus n'aura aucun effet.

+0

Merci pour votre réponse, mais il n'y avait pas de solution. –

+0

Comment puis-je faire cela? –

+0

@MasoudZayyani, voici comment: https://www.mathworks.com/matlabcentral/answers/139854-how-to-change-the-gui-close-function-with-changing-the-close-function-of-figures – randomir

1

Avec cela, vous pouvez désactiver tous:

set(findall(handles.your_uipanel, '-property', 'Enable'), 'Enable', 'off') 

mais seulement désactiver les proches l'une:

function closeRequestDemo 
    figHdl = dialog('Name','Close Request Demo',... 
        'CloseRequestFcn',@cmdClose_Callback);...dialog creates a nice stripped down figure 

    uicontrol('Parent',figHdl,... 
       'String','Close',... 
       'Callback',@cmdClose_Callback); 


    function cmdClose_Callback(hObject,varargin) 
     disp(['Close Request coming from: ',get(hObject,'Type')]); 

     %do cleanup here 
     delete(figHdl); 

    end %cmdClose_Callback 
end %closeRequestDemo 

Sources ici https://www.mathworks.com/matlabcentral/newsreader/view_thread/290049

une autre façon est:

% Get all the handles to everything we want to set in a single array. 
handleArray = [handles.editText, handles.pushbutton, handles.listbox]; 
% Set them all disabled. 
set(handlesArray, 'Enable', 'off'); 
+0

merci, mais où je devrais insérer le premier code? dans ** CloseRequestFcn **? –

+0

@MasoudZayyani pas exactement, je vais ajouter une autre alternative, vous pouvez le vérifier ici: https://www.mathworks.com/matlabcentral/answers/72650-hide-and-disable-uicontrols-in-groups vous n'insérez pas il, vous l'exécutez. –

+0

@MasoudZayyani J'ai mis à jour la réponse, j'espère que cela vous aide, ne pas oublier d'accepter la réponse si elle était utile :) –