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

Pan Funktion in Toolbar mit Shortcut belegen

 

Localhorst
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 18.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.10.2010, 15:12     Titel: Pan Funktion in Toolbar mit Shortcut belegen
  Antworten mit Zitat      
Hallo Forum,

ich habe eine mit Guide erstellte GUI. In dieser habe ich auch eine Toolbar mit den Guide gegebenen mitteln integriert. Die dort dargestellte und auch funktionierende Pan Funktion soll nun über einen Shortcut angewählt/abgewählt werden können.

Ich finde dazu einfach nichts. Kann mir gar nicht vorstellen, dass es nicht gehen soll. Bei Menü einträgen kann doch auch einfach ein Shortcut definiert werden.

Über einen kurzen stups in die richtige Richtung würde ich mich sehr freuen.

Gruß
Localhorst
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.10.2010, 16:29     Titel: Re: Pan Funktion in Toolbar mit Shortcut belegen
  Antworten mit Zitat      
Hallo Localhorst,

Kannst Du nicht einfach die Funktion PAN aufrufen, wenn eine bestimmte Taste gedrückt wird?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Localhorst
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 18.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2010, 11:13     Titel:
  Antworten mit Zitat      
Hi Jan,

na wenn ich wüsste wie? Genau das suche ich doch Smile

Gruß
Localhorst
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.10.2010, 14:17     Titel:
  Antworten mit Zitat      
Hallo Localhorst,

Was genau suchst Du?
Die Definition eines Callbacks falls eine Taste gedrückt wurde? Dann suche mal nach "KeyPressFcn" in der Dokumentation.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Localhorst
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 18.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2010, 15:23     Titel:
  Antworten mit Zitat      
Genau da bin ich gerade dran. Ich habe hier im Forum auch einen Thread dazu gefunden in dem einer Probleme mit der Keypressfcn hat. Ich habe diese leider auch.

Ich habe ein GUI welches ich mit Guide erstellt habe.

In das entsprechende M File habe ich mal folgende Funktion gepackt

function myPress(src,evnt)
if length(evnt.Modifier) == 1 & strcmp(evnt.Modifier{:},'alt') & ...
evnt.Key == 's'
disp('Juhuu es GEEEEHT');
end

Die sollte mir in der Kommandozeile dann 'Juhuu es GEEEEHT' ausgeben wenn alt+s gedrückt würde.

Aber wie verknüpfe ich diese Funktion nun mit der KeyPressFcn?
Ich gehe davon aus, das ich in GUIDE in den PropertieINspector meines Hauptfigures gehen muss und dort die Funktion bei KeyPressFcn eintragen muss. Aber mit welcher Syntax?

Eigentlich sollte bei dem Tastendruck die Pan Funktion ausgeführt werden. Aber das müsste doch gehen, wenn ich mir von GUIDE die Callback Funktion von PAN aus der Toolbar erzeugen lasse und dann auf diese verlinke, oder?

Entschuldige, wenn ich mich hier extrem dappig anstelle, komme aber nicht weiter.

Gruß
Localhorst
Private Nachricht senden Benutzer-Profile anzeigen
 
Localhorst
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 18.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2010, 12:43     Titel:
  Antworten mit Zitat      
Ok, ich bin einen Schritt weiter.

Habe den Shortcut eingebaut. Wird nun über die KeyPressFcn des Hauptfensters des Gui gestartet. Das klappt auch soweit nur leider verliere ich dabei den Fokus auf das Hauptfenster so das ich die Pan Funktion nicht wieder über den Shortcut abwählen kann.

Wie bekomme ich den Fokus wieder zurück?

Hier mal mein Code der beiden Funktionen

Code:

% --------------------------------------------------------------------
function move_image_button_ClickedCallback(hObject, eventdata, handles)
% hObject    handle to move_image_button (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
try
if eventdata.Key=='p'
        disp('komme über taste');
        if strcmp(get(handles.move_image_button,'State'),'on')
            pan('off');
        elseif strcmp(get(handles.move_image_button,'State'),'off')
            pan('on');
        end  
end
catch
        if strcmp(get(handles.move_image_button,'State'),'on')
            pan('on');
        elseif strcmp(get(handles.move_image_button,'State'),'off')
            pan('off');
        end
end
% --- Executes on key press with focus on figure1 and none of its controls.
function figure1_KeyPressFcn(hObject, eventdata, handles)
% hObject    handle to figure1 (see GCBO)
% eventdata  structure with the following fields (see FIGURE)
%   Key: name of the key that was pressed, in lower case
%   Character: character interpretation of the key(s) that was pressed
%   Modifier: name(s) of the modifier key(s) (i.e., control, shift) pressed
% handles    structure with handles and user data (see GUIDATA)

if eventdata.Key=='p'
%         disp('disp_keypress');
        move_image_button_ClickedCallback(hObject, eventdata, handles);
end
 


Über eine Idee würde ich ich sehr freuen, habe bei Google diverse Ansätze gefunden aber keiner von denen hat funktioniert.

Gruß
Localhorst
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.10.2010, 13:17     Titel:
  Antworten mit Zitat      
Hallo Localhorst,

Zitat:
Das klappt auch soweit nur leider verliere ich dabei den Fokus auf das Hauptfenster so das ich die Pan Funktion nicht wieder über den Shortcut abwählen kann.

Ups, das ist schwierig.
Mit dokumentierten Matlab-Mitteln geht es gar nicht.
Da Du für die PAN-Funktion sowieso die Maus bewegen musst, wäre es vielleicht einfacher, du würdest bei dem normalen PAN-Button bleiben...

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Localhorst
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 18.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2010, 14:17     Titel:
  Antworten mit Zitat      
Hi Jan,

ich gehe davon aus, dass du auf ein JavaScript Workaround anspielst, oder?

Wäre mir auch recht.

Ich benötige den Shortcut, da in meiner Gui in einem hohem Zoom ein Polygonzug mit impoly eingezeichnet wird. Wegen des hohen Zooms müssen die Leute das Bild weiter schieben können. Hier jedes mal mit der Maus auf die Pan Taste drücken erscheint mir recht kompliziert. Es wäre viel einfacher, wenn die Benutzer ihren Polygonzug zeichnen würden, kurz auf P drücken, das Bild weiter schieben, wieder auf P drücken und dann weiter zeichnen können. Mit der normalen PAN Taste per Mausklick klappt das auch schon.

Gruß
Localhorst
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.10.2010, 14:54     Titel:
  Antworten mit Zitat      
Hallo Localhorst,

Ja, das geht nur in Java. Du kannst im CSSM-Forum die Frage konkret an Yair stellen. Der scannt offenbar das Forum regelmäßig nach seinem Namen.

Ich habe für eine ähnliche Situation eine PAN-ähnliche Funktion gebastelt, die mit der rechten Maustaste und einem normalen WindowButtonDownFcn-Callback gestartet wird.

In der FEX gibt's ein Tool zur 3D-Navigation, aber das läuft in 2D sehr ähnlich: es wird nicht die Camera bewegt, sondern die XLim und YLim-Werte neu gesetzt. Suche mal nach "3D", "navigate" oder so ähnlich. Der Sourcecode der PAN Funktion selbst ist dagegen nicht so hilfreich.

Das würde dann sogar ohne Tastatur laufen!

Gruß, Jan[/code]
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 - 2025 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.