Ich habe ein GUI-Programm in Matlab mit Matlab GUIDE geschrieben. Erstellt ein Werkzeug auf der Symbolleiste und schrieb eine Rechtsklick-Rückruffunktion wie unten gezeigt, aber wenn ich mit der rechten Maustaste auf dieses Werkzeug auf der GUI, gibt es keine Antwort.ButtonDownFcn eines Tools auf Matlab GUIDE-Symbolleiste funktioniert nicht
function MyTool_ButtonDownFcn(hObject, eventdata, handles)
waitfor(msgbox('Hello button down function','Hello button down'));
disp('Hello disp');
Von Eigenschafteninspektor Wert von ButtonDownFcn ist:
@(hObject,eventdata)main('MyTool_ButtonDownFcn',hObject,eventdata,guidata(hObject))
Ich habe versucht, einen anderen Knopf mit Callback-Funktion zum Debuggen mit auszuführen ‚Tastatur‘.
function bugfindbutton_ClickedCallback(hObject, eventdata, handles)
keyboard
Dies bestätigte die Existenz der Funktion mit ButtonDownFcn
des Werkzeugs zugeordnet MyTool_ButtonDownFcn(hObject, eventdata, handles)
und wird von allen anderen Funktionen nicht gelöscht. Aber ein Rechtsklick auf das Werkzeug gibt weder die msgbox- noch die Befehlsfensterausgabe.
Ich möchte mit der rechten Maustaste auf "MyTool" Umschaltfläche (ein benutzerdefiniertes Werkzeug auf der Symbolleiste), um MyTool_ButtonDownFcn
Funktion auszuführen. Wie kann ich es tun?
Das Toggle-Tool Taste 'zuweisen MyTool hat gültige OnCallback- und OffCallback-Funktionen. Daher kann 'ClickedCallback' nicht für eine weitere Aufgabe verwendet werden. Mit 'MouseReleasedCallback' wird die Funktion sowohl für die linke Maustaste als auch für die rechte Maustaste ausgeführt. Daher kann dieser Callback nicht verwendet werden, da er mit Linksklick für "OnCallback" und "OffCallback" interferiert. Danke für Informationen über 'findjobj', obwohl es das Problem nicht gelöst hat. Ich wollte eine weitere Funktion zum 'MyTool'-Schalter hinzufügen. Ich dachte, Rechtsklick ist der einzige Weg. Haben Sie noch eine Idee, das zu tun? – ItzMe
@Govinda Ich habe das Beispiel aktualisiert, um etwas gründlicher zu sein. Sie können auf jeden Fall 'OnCallback' und' OffCallback' in Verbindung mit dem 'MouseReleasedCallback' verwenden, Sie müssen nur den Callback überprüfen, dass es die richtige Schaltfläche war, auf die geklickt wurde. Siehe mein Update. – Suever
Dies funktionierte, bis ich erkannte, dass 'Handles' innerhalb der Callback-Funktion aktualisiert werden müssen. Callback-Funktionen haben 'callback (hObject, eventdata, handles)' -Syntax, also habe ich nicht speziell gefragt. Aber ich brauche auch "Handles", um innerhalb des Callbacks aktualisiert zu werden. Könnten Sie mir bitte helfen, das auch zu tun? – ItzMe