Domanda

Sto sviluppando un'applicazione GUI Matlab che traccia una figura con ulteriori elementi UI nella finestra GUI.Vorrei aggiungere un'azione di menu al menu della finestra GUI che duplica esattamente il menu "Modifica | Copia figura" della finestra di figura standard, in modo che le opzioni di figura di copia "conservare le informazioni", "Force White Background" e "La dimensione dello schermo può essere applicata.

Qualcuno sa come fare questo?

Grazie!

Modifica per aggiungere cosa ha funzionato

Piuttosto che provare a copiare / modificare / incollare il codice nel gestore del menu della finestra figura, l'ho appena chiamato dalla funzione del 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');
.

quasi certamente non a prova di futuro, e non garantito da lavorare in qualsiasi versione futura, ma in R2014a fa quello che voglio!

È stato utile?

Soluzione

Tipo

>>edit editmenufcn
.

al prompt dei comandi MATLAB per visualizzare tutte le invocazioni programmatiche del menu Modifica.Apparentemente ciò che stai cercando è:

editmenufcn(hFigure, 'EditCopyFigure');
.

Naturalmente, hFigure dovrebbe essere la maniglia della figura che si desidera copiata.

modifica successivamente

Sbirciare nel codice potrebbe darti suggerimenti per implementare funzionalità più raffinate.Il corpo della funzione è un'enorme dichiarazione switch;Alla ricerca di una stringa 'EditCopyFigure' ti darà lo snippet di codice a cui sei interessato. Fare attenzione a non modificare questa funzione o per salvare le modifiche, però.: -)

Tuttavia, questa funzione non è documentata e potrebbe essere modificata / rimossa nelle versioni successive.Spero che tu non sia disturbato da questo.

anche in seguito Modifica

apparentemente quanto sopra non è la risposta alla domanda.La risposta sarebbe "Sì, c'è almeno uno che sa come fare questo." : -)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top