ich habe in einer figure ein uipanel, in dem ich eine Grafik in Form einer Bitmap-Datei anzeige. Um die Grafik an der entsprechenden Stelle anzuzeigen, benutze ich folgenden Code:
Das Argument der imread-Funktion ist dabei einfach der Pfad zu einer Grafik.
Damit man sich das Ganze vorstellen kann, hier ein Screenshot (habe denselben Screenshot auch an diesen Post angehangen, siehe unten): http://img185.imageshack.us/my.php?image=roitrackerro5.png - in der unteren Hälfte der figure sieht man den uipanel "Frame View", in der ich die Grafik anzeige.
So weit so gut. Jetzt würde ich gerne Folgendes machen: Wenn der Benutzer die Maus innerhalb des "Frame View"-Panels klickt (=> ButtonDownFcn), soll etwas geschehen (genauer: es soll die Klickposition (x, y) registriert werden).
Problem an der Sache: Das Event des Mausklicks wird wohl nur dann ausgelöst, wenn der Benutzer innerhalb des "Frame View"-Panels (in Ordnung), aber außerhalb der Grafik (nicht gewollt) klickt. Wenn ich irgendwo auf der Grafik einen Mausklick ausführe, wird ButtonDownFcn leider nicht mehr ausgeführt. Und genau das hätte ich aber gerne. :) Die Grafik im Panel scheint irgendwie zu verhindern, dass in ihr Klickereignisse registriert werden.
Noch besser wäre es, wenn ich diesen Event-Handler an die Grafik selbst binden könnte, sodass das Ereignis *nur* dann ausgelöst wird, wenn ich innerhalb der Grafik die Maus klicke.
Jemand eine Idee, wie man das Problem lösen könnte? Ich danke im Voraus.
merci für deine Antwort! ginput habe ich mir angeschaut, ja, und auch ausprobiert...aber wirklich schlau wurde ich aus der Funktion nicht. :/
Habe nach langer Suche herausgefunden, dass es bei uipanels (offiziell) tatsächlich so ist, dass Mausklick-Events (ButtonDownFcn) nicht registriert werden, wenn "über" dem Panel z.B. eine Grafik liegt.
Allerdings gelingt es, diese Events über WindowButtonDownFcn zu registrieren. Leider sieht uipanel jedoch dafür keine Unterstützung vor, sodass ich stattdessen die Grafik in eine neue figure geladen habe und für diese figure dann WindowButtonDownFcn implementiert habe, um die Klicks zu registrieren. (figure unterstützt WindowButtonDownFcn.)
benutze die ButtonDownFcn von dem Bild und nicht von dem UIPANEL.
Dann die Funktion auch nur dann ausgeführt, wenn Du innerhalb des Bildes klickst.
MfG
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.