WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

uipanels & Event Handling (ButtonDownFcn)

 

DanielP.
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 31.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.08.2008, 00:42     Titel: uipanels & Event Handling (ButtonDownFcn)
  Antworten mit Zitat      
Hallo,

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:
Code:

arrAxesPos = [.125, .0065, .75, .75];
axes_handle = axes('Position', arrAxesPos);

% an anderer Stelle dann Anzeige der Grafik durch:
imshow(imread([strWorkingDirPath, '\', int2str(intFrameNo), '.', fileExt]), 'Parent', axes_handle);
 
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.


Gruß
Daniel

roitracker.png
 Beschreibung:

Download
 Dateiname:  roitracker.png
 Dateigröße:  178.95 KB
 Heruntergeladen:  609 mal
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 26.08.2008, 08:20     Titel:
  Antworten mit Zitat      
Moin,

hast du schonmal die Funktion
Code:
ausprobiert?

Ansonsten lad doch mal den Code hoch, mit dem du auf das Panel bzw. das Bild zugreifen willst.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
DanielP.
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 31.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2008, 20:28     Titel:
  Antworten mit Zitat      
Hi steve,

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.)

Problem ist also gelöst.


Gruß
Daniel
Private Nachricht senden Benutzer-Profile anzeigen
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 27.08.2008, 21:55     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.