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

Skript starten durch Buttondruck in der GUI

 

TingltanglBob
Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 13.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2016, 10:45     Titel: Skript starten durch Buttondruck in der GUI
  Antworten mit Zitat      
Liebe GoMatlab Besucher,

ich bin leider ein echter Anfänger und bin auf ein Problem gestoßen, was mich ziemlich aufhält und da ist meine Frage, ob ihr mir da weiter helfen könntet?

Und zwar will ich, wie der Titel schon sagt, ein Skript in der GUI auf Buttondruck starten. Ich habe mir überlegt, den Skript in eine Funktion umzuschreiben. Jedoch wäre das wirklich meine letzte Option, falls ich anders nicht weiter kommen sollte.

Ich hoffe jemand kann mir da weiterhelfen.

Mfg
Private Nachricht senden Benutzer-Profile anzeigen


TingltanglBob
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 13.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2016, 11:14     Titel:
  Antworten mit Zitat      
Habs gelöst Leute Smile

Den Befehl Run habe ich verwendet.

Lg
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: 15.03.2016, 11:17     Titel: Re: Skript starten durch Buttondruck in der GUI
  Antworten mit Zitat      
Hallo TingltanglBob,

Erstellst Du das GUI per GUIDE oder per Code?
In beiden Fällen muss man einfach nur den Namen des Scripts im Callback des Buttons eintragen. Das ist also eigentlich trivial. Bitte erkläre also, welches Problem Du dabei hast. Wie hast Du es bisher versucht?

Ich verwende grundsätzlich niemals Scripte, weil dabei lokale Variablen der aufrufenden Funktion überschrieben werden können, was das Debuggen erschwert. Insofern würde ich Dir raten, den Code auf jeden Fall in eine Funktion zu packen, da Dir das eine Menge Debug-Arbeit ersparen kann. Je modularer der Code ist, desto besser.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 13.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2016, 11:31     Titel:
  Antworten mit Zitat      
Hallo Jan S,

also die GUI habe ich per Code erstellt und ich habe es auch dann so gelöst, dass ich einfach sobald ich den Button betätige durch den Befehl Rund das Skript ausführe und es funktioniert auch, aber eine Callback wäre in diesem Fall vielleicht besser oder?

lg
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: 15.03.2016, 11:36     Titel:
  Antworten mit Zitat      
Hallo TingltanglBob,

Bitte erkläre genau, was Du wo eingefügt hast.
Wenn dieser run (nicht "Rund"?!) Befehl aufgerufen wird, wenn der Button gedrückt wird, ist das ein "Callback". Ich wüsste nicht, wie man mit einem Button etwas anderes als einen Callback auslösen könnte. Falls Du den run Befehl direkt in die Definition des Callbacks eingetragen hast, wäre das ungeschickter, als den Script-Namen im Code des Callbacks einzufügen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 13.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2016, 11:45     Titel:
  Antworten mit Zitat      
Hallo Jan S,

tut mir leid du hast Recht. Der Run-Befehl mit dem Skript-Namen befindet sich in der Callback.

Lg
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: 15.03.2016, 15:13     Titel:
  Antworten mit Zitat      
Hallo TingltanglBob,

Offenbar reden wir aneinander vorbei.

Zitat:
Der Run-Befehl mit dem Skript-Namen befindet sich in der Callback.

Das ist immer noch nicht eindeutig klar. Kannst Du den entsprechenden Code-Abschnitt posten?

Sinnvoller Weise gehört der Aufruf des Scripts in die Callbackfunktion:
Code:
function ButtonXYV_Callback(ObjectH, EventData)
yourScriptName;

Wie schon gesagt ist es im Allgemeinen hilfreich, Funktionen statt Scripte zu verwenden.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 15.03.2016, 18:35     Titel:
  Antworten mit Zitat      
Hallo,

warum nicht einfach?

Code:

hbutton = uicontrol('Style','pushbuttton','Callback', @myfunction)
 


Beim Betätigen des Buttons wird dann immer die Funktion myfunction ausgeführt.

Gruß DSP
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.