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

PushButton mit "Enter" ausführen

 

CeeKaa
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.08.2011, 16:58     Titel: PushButton mit "Enter" ausführen
  Antworten mit Zitat      
Hallo zusammen,

ich habe eine GUI mit einem pushbutton erstellt. Durch den Klick auf diesen Button werden Daten an die serielle Schnittstelle geschickt. Ich möchte aber das der Button auch die Daten sendet, wenn man auf der Tastatur "Enter" drückt.
Ich habe bereits die keypressfcn für diesen Button erstellt

Code:
function pushbutton1_KeyPressFcn(hObject, eventdata, handles)


Ich bekomme das selber nicht wirklich hin und würde mich über eure Unterstützung freuen.

LG
CeeKaa
Private Nachricht senden Benutzer-Profile anzeigen


Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 03.08.2011, 21:10     Titel:
  Antworten mit Zitat      
Hey,

schau dir doch ma das eventdata in der KeyPressFcn an. Du musst natürlich beachten, dass hierfür der Button ausgewählt sein muss. Soll heißen einfach den Cursor darüber Positionieren reicht nicht.

Code:

function pushbutton1_KeyPressFcn(hObject, eventdata, handles)
switch eventdata.Key
case 'return'
 % dein code
end
 

Wenn der Code auch ausgeführt werden soll, wenn du den Button nicht ausgewählt hast und enter drückst würde ich die KeyPressFcn der figure benutzen...

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
draussen
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 90
Anmeldedatum: 26.11.10
Wohnort: DE
Version: 2010b,2020a
     Beitrag Verfasst am: 03.08.2011, 22:04     Titel:
  Antworten mit Zitat      
Hallo,

hatte da mal nachgeschaut bin aber dann an der pushbutton callbackfunction hängen geblieben. Hätte sonst den gleichen Vorschlag. Das mit der KeyPressFcn der Figure kann man z.B. gut im m-file der entsprechenden guide Vorlage nachsehen.


@Marko:
Was mich interessieren würde: Wie rufe ich denn von der pushbutton1_KeyPressFcn (da wo "% dein code" steht) die pushbutton callbackfunction auf? Da steht ja der code drin, den man ausführen möchte.
Das mit den callbackfunctions und den notwendigen parametern hab ich irgendwie immer noch nicht so ganz verstanden (dank guide musste ich das bis jetzt auch nicht ;-P).

Danke im Voraus

MfG
_________________

Der Einäugige ist unter den Blinden der König!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 03.08.2011, 22:17     Titel:
  Antworten mit Zitat      
Hey,

also du könntest folgendes machen.

1. Variante
Code:

function pushbutton1_Callback(hObject, eventdata, handles)
%%%%%%%%%%%%%%%%%%%%%%
% dein Code

function pushbutton1_KeyPressFcn(hObject, eventdata, handles)
switch eventdata.Key
    case 'return'
        pushbutton1_Callback; % aufruf ohne übergabewerte
end
 


oder

Code:

function pushbutton1_Callback(hObject, eventdata, handles)
%%%%%%%%%%%%%%%%%%%%%%
bearbeiten;% funktion bearbeiten aufrufen

function pushbutton1_KeyPressFcn(hObject, eventdata, handles)
switch eventdata.Key
    case 'return'
        bearbeiten;% funktion bearbeiten aufrufen
end
function bearbeiten
% dein Code
 

Falls du die handles brauchst musst du diese mit übergeben... Wie man mit Funktionen arbeitet steht auch recht gut in der Hilfe beschrieben...

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
CeeKaa
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2011, 08:21     Titel:
  Antworten mit Zitat      
Hi,

vielen Dank für die Hilfe.
Da der Code natürlich auch ausgeführt werden soll, wenn der Button nicht ausgewählt ist, habe ich es jetzt mit der keypressfnc der figure probiert. Mein Code sieht jetzt so aus:

Code:
function figure1_KeyPressFcn(hObject, eventdata, handles)
switch eventdata.Key
case 'return'
    pushbutton1_Callback(hObject, eventdata, handles)
end
 


Wenn ich jetzt in ein edit-Feld Werte eintrage, dann auf "Enter" drücke, um diese zu senden passiert nichts. Wenn ich mit der Maus aus dem edit-Feld aif die figure klicke und dann "Enter" drücke wird das "enter" im Command Window verarbeitet.

Was ist bei mir noch falsch?
Was muss ich ändern, damit der button bei "Umschalt+Enter" ausgeführt wird?

Vielen Dank schonmal

VG
CeeKaa
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 04.08.2011, 09:45     Titel:
  Antworten mit Zitat      
Hallo
du musst außerdem KeyPressFcn auch bei Edit-Feld und Button auf figure1_KeyPressFcn setzen.
Es wird immer die Funktion ausgeführt, auf wessen Gui-Objekt gerade Fokus liegt. Wenn du z.B. in zuletzt etwas in Edit-Feld eingegeben hast, dann liegt der Fokus, auf Edit-Feld. Also wenn du jetzt Enter presst, dann wird KeyPressFcn von Edit Feld ausgeführt
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.