Question

Je développe une application Matlab GUI qui trace une figure avec des éléments d'interface utilisateur supplémentaires dans la fenêtre GUI.Je voudrais ajouter une action de menu au menu de la fenêtre GUI qui duplique exactement l'entrée "Modifier | Copier la figure" du menu de la fenêtre de figure standard, de sorte que les options de copie de la figure "préservent les informations", "forcent le fond blanc" et "correspondent à la figure". taille de l'écran' peut être appliquée.

Est-ce que quelqu'un sait comment faire ça?

Merci!

EDIT Pour ajouter ce qui a fonctionné

Plutôt que d'essayer de copier/modifier/coller le code dans le gestionnaire de menu de la fenêtre de la figure, je l'ai simplement appelé depuis la fonction du menu GUI

% --------------------------------------------------------------------
function CopyFigureMenuItem_Callback(hObject, eventdata, handles)
% hObject    handle to CopyFigureMenuItem (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
editmenufcn(handles.figure1, 'EditCopyFigure');

Ce n'est certainement pas à l'épreuve du temps, et il n'est pas garanti qu'il fonctionnera dans une version future, mais dans R2014a, il fait ce que je veux !

Était-ce utile?

La solution

Taper

>>edit editmenufcn

à l'invite de commande Matlab pour voir toutes les invocations programmatiques du menu Edition.Apparemment, ce que vous recherchez c'est :

editmenufcn(hFigure, 'EditCopyFigure');

Bien sûr, hFigure devrait être le handle de la figure que vous souhaitez copier.

Modifier plus tard

Un coup d'œil dans le code peut vous donner des indices pour implémenter des fonctionnalités plus raffinées.Le corps de la fonction est énorme switch déclaration;à la recherche de 'EditCopyFigure' string vous donnera l'extrait de code qui vous intéresse.Attention cependant à ne pas modifier cette fonction, ni à enregistrer les modifications.:-)

Cependant, cette fonction n'est pas documentée et pourrait être modifiée/supprimée dans les versions ultérieures.J'espère que cela ne vous dérange pas.

Même plus tard, modifier

Apparemment, ce qui précède n'est pas la réponse à la question.La réponse serait "Oui, il y en a au moins un qui sait faire ça." :-)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top