Frage

Ich entwickle eine Matlab-GUI-Anwendung, die eine Figur mit zusätzlichen UI-Elementen im GUI-Fenster darstellt.Ich möchte dem GUI-Fenstermenü eine Menüaktion hinzufügen, die den Eintrag "Abbildung bearbeiten | Kopieren" des Standard-Abbildungsfenstermenüs genau dupliziert, sodass die Kopierabbildungsoptionen "Informationen beibehalten", "Weißen Hintergrund erzwingen" und "Abbildungsbildschirmgröße anpassen" angewendet werden können.

Weiß jemand, wie das geht?

Danke!

BEARBEITEN, um hinzuzufügen, was funktioniert hat

Anstatt zu versuchen, den Code in den Menü-Handler des Figurenfensters zu kopieren / zu ändern / einzufügen, habe ich ihn einfach über die GUI-Menüfunktion aufgerufen

% --------------------------------------------------------------------
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');

Mit ziemlicher Sicherheit nicht zukunftssicher und es wird nicht garantiert, dass es in einer zukünftigen Version funktioniert, aber in R2014a macht es, was ich will!

War es hilfreich?

Lösung

Art

>>edit editmenufcn

an der Matlab-Eingabeaufforderung sehen Sie alle programmgesteuerten Aufrufe des Bearbeitungsmenüs.Anscheinend ist das, wonach Sie suchen, ist:

editmenufcn(hFigure, 'EditCopyFigure');

Natürlich, hFigure sollte das Handle der Figur sein, die Sie kopieren möchten.

Später bearbeiten

Ein Blick in den Code kann Ihnen Hinweise geben, um verfeinerte Funktionen zu implementieren.Der Körper der Funktion ist riesig switch Anweisung;auf der Suche nach 'EditCopyFigure' string gibt Ihnen das Code-Snippet, an dem Sie interessiert sind.Achten Sie jedoch darauf, diese Funktion nicht zu ändern oder Änderungen zu speichern.:-)

Diese Funktion ist jedoch undokumentiert und kann in späteren Versionen geändert / entfernt werden.Ich hoffe, das stört Sie nicht.

Noch später bearbeiten

Anscheinend ist das Obige nicht die Antwort auf die Frage.Die Antwort wäre "Ja, es gibt mindestens einen, der weiß, wie man das macht." :-)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top