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

Auf Callback Ausführung von Buttons warten

 

Anfänger 2.0
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 17.10.13
Wohnort: kreis Karlsruhe
Version: ---
     Beitrag Verfasst am: 30.07.2015, 15:49     Titel: Auf Callback Ausführung von Buttons warten
  Antworten mit Zitat      
Fragen über Fragen man man Very Happy
Der Anfänger hat mal wieder ne Frage Embarassed

Folgendes:
Ich habe eine GUI über die ich Daten in ein Struct lade. Dabei darf der Benutzer über Buttons entscheiden, ob er die Daten aus der WS oder aus einer externen Datei lädt.
Für die weiteren Schritte muss jetzt natürlich gewartet werden, bis das Laden der Daten abgeschlossen ist.
Mit folgendem würde das eigentlich gehen:
Code:

PB1 = uicontrol(fH, 'Style', 'pushbutton', 'String', 'Workspace', ...
    'units', 'normalized', 'position', [0.5 0 0.5 0.5], ...
    'Callback', {@uploadBase, fHandle});

waitfor(PB1);
 

Jedoch habe ich ja das Problem dass ich die Wahl zwischen zwei Buttons habe:
Code:

PB1 = uicontrol(fH, 'Style', 'pushbutton', 'String', 'from File', ...
    'units', 'normalized', 'position', [0 0 0.5 0.5], ...
    'Callback', {@uploadFile, fHandle});
PB2 = uicontrol(fH, 'Style', 'pushbutton', 'String', 'Workspace', ...
    'units', 'normalized', 'position', [0.5 0 0.5 0.5], ...
    'Callback', {@uploadBase, fHandle});

%waitfor ????
 


wie realisiere ich hier die "Sperre" ?
Waitfor funktioniert ja so, dass es auf die Löschung eines Objektes, bzw. auf die Änderung eines Attributes dieses Objektes wartet.
Wie bringe ich der Funktion bei, dass ich zwei Möglichkeiten habe?
Gibt es eine Alternative Methode?

Danke schonmal im voraus Smile
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: 31.07.2015, 13:42     Titel: Re: Auf Callback Ausführung von Buttons warten
  Antworten mit Zitat      
Hallo Anfänger 2.0

Du kannst in den Callbacks z.B. die Eigentschft 'UserData' der Figure setzen:

Code:
FigH = figure('UserData', 0)
...
callback Button1(ObjectH, EventData)  % Und auch in Button2
...
set(FigH, 'UserData', 1);
...
 

Dann wartet diese Zeile, bis einer der beiden Button betätigt worden ist:
Code:
waitfor(FigH, 'UserData', 1)

Du könntest auch einfach gar nicht warten, und stattdessen eine Warnung ausgeben, wenn die Berechnungen gestartet werden (mit einem anderen Button), ohne dass zuvor Daten ausgewählt worden sind. Ich kenne viele GUIs, in denen erst nach dem Auswählen von Daten, der "Berechnen"-Button aktiviert ist.

Gruß, Jan
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.