Verfasst am: 24.06.2012, 14:32
Titel: Schleife direkt bei GUI start laufen lassen
Hallo zusammen,
in Anlehnung an die Antworten, die ich bei diesem Thema bekommen habe:
http://www.gomatlab.de/viewtopic,p,93004.html#93004
habe ich versucht das dort gezeigte in ein von GUIDE erstelltes GUI einzubetten, da es mir dort einfacher fällt mehrere Felder zueinander anzuordnen.
Im Anhang findet ihr die Files. Hier poste ich gleich den Code von der .m-File
Mein Problem ist, dass ich derzeit auf den "Start"-Button klicken muss um die schleife für die ausgabe der Werte zu starten. Ich hätte aber gerne das GUI so, dass es bei Aufruf direkt läuft und dann über den Stop-Button gestoppt und beendet wird (Der user soll bei klick auf einen button in einem extra fenster dieses GUI gezeigt bekommen, solange er will aktuelle werte sehen und dann mit klick auf stop das neue GUI schließen).
Gibt es da eine elegante möglichkeit?
Vielen Dank!
Code:
functionvarargout = buttonstopguide(varargin) % BUTTONSTOPGUIDE MATLAB code for buttonstopguide.fig % BUTTONSTOPGUIDE, by itself, creates a new BUTTONSTOPGUIDE or raises the existing % singleton*.
%
% H = BUTTONSTOPGUIDE returns the handle to a new BUTTONSTOPGUIDE or the handle to % the existing singleton*.
%
% BUTTONSTOPGUIDE('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in BUTTONSTOPGUIDE.M with the given input arguments.
%
% BUTTONSTOPGUIDE('Property','Value',...) creates a new BUTTONSTOPGUIDE or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before buttonstopguide_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to buttonstopguide_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help buttonstopguide
% Last Modified by GUIDE v2.5 23-Jun-2012 20:45:12
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @buttonstopguide_OpeningFcn, ...
'gui_OutputFcn', @buttonstopguide_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
ifnargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
% --- Executes just before buttonstopguide is made visible. function buttonstopguide_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to buttonstopguide (see VARARGIN)
% Choose default command line output for buttonstopguide
handles.output = hObject;
% Update handles structure guidata(hObject, handles);
set(handles.startbutton,'UserData',0);
% UIWAIT makes buttonstopguide wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. functionvarargout = buttonstopguide_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure varargout{1} = handles.output;
% --- Executes on button press in startbutton. function startbutton_Callback(hObject, eventdata, handles) % hObject handle to startbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) ifget(handles.startbutton,'UserData')==1 return end set(handles.startbutton,'UserData',1);
x=0;
I=0;
while x==0 ifget(handles.startbutton,'UserData')==0 break end
I=I+1;
pause(0.2) set(handles.text1,'string',num2str(I)) end delete(handles.figure1)
% --- Executes on button press in stopbutton. function stopbutton_Callback(hObject, eventdata, handles) % hObject handle to stopbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.startbutton,'UserData',0)
% --- Executes during object creation, after setting all properties. function text1_CreateFcn(hObject, eventdata, handles) % hObject handle to text1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
Funktionalität, die direkt beim Starten der GUI ausgeführt werden soll, würde ich in die OpeningFcn platzieren.
Grüße,
Harald
Einstellungen und Berechtigungen
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
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.