Diese post zeigt, wie Sie mit der Funktion overobj den Zeiger so einstellen, dass er den Achsenteil einer GUI ändert. Das Problem ist, dass dies die Zeigerform außer Kraft setzt, die von den Zoom- oder Schwenk-Symbolleistenschaltflächen festgelegt wurde. Ich kann wie folgt testen für verschiedene Symbolleisten-Schaltflächen sind:Koordinieren von Schaltflächen und Schaltflächen in der Werkzeugleiste zum Setzen des Zeigers in Matlab
if (strcmp(handles.zoom.State, 'off'))
obj_han=overobj('axes');
if ~isempty(obj_han)
set(handles.figure1,'Pointer','cross');
else
set(handles.figure1,'Pointer','arrow');
end
end
Aber das erfordert einen neuen Test für jedes Werkzeug in der Symbolleiste hinzufügen, die für Fehler wie eine Formel scheint. Wie setzt Zoom beispielsweise den Zeiger? Gibt es eine bessere Möglichkeit zum Integrieren des Zeigers mit der Art, wie die Symbolleistenschaltflächen die Änderung vornehmen?
das funktioniert, aber eine zusätzliche Frage auffordert. Meine Gui hat ein Achsenobj, das ich dann imi show ('pic.bmp') oben auf. Das Standardverhalten besteht darin, die Sichtbarkeit der Achsen obj zu deaktivieren, wodurch die Achsen von overobj ausgeblendet werden. OK, mach es wieder an, aber jetzt bekomme ich Tickmarkierungen außerhalb meines Bildes. Ich kann sie mit axes.XTick = [] ausschalten (und dasselbe für Y), aber gibt es einen eleganteren Weg, dies zu tun? Sollte die erste Zeile Ihres Codes auch gcbf anstelle von gcf verwenden? – Llaves
@Llaves Der einzige Weg, dies mit einer Achse zu erreichen, ist das, was Sie getan haben. Sie können 'gcbf' verwenden, wenn Sie bevorzugen. Das Snippet zeigt nur an, dass Sie den "uimodemanager" von der Figur abrufen. Wie Sie diesen Zahlengriff erhalten, bleibt Ihnen überlassen. – Suever