über GUI Werte eingeben und vorhandenes Skript ausführen
Vesuv
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 08.07.2015, 10:16
Titel: über GUI Werte eingeben und vorhandenes Skript ausführen
Hallo,
ich soll das erste Mal mit GUI arbeiten und muss zugeben, dass es mich etwas überfordert und ich langsam nur noch Bahnhof verstehe
Ich habe mir ein GUI erstellt in dem ich mehrere Strings eingebe: z.B. einen Titel
Das GUI wird nun erst im Nachhinein erstellt, eigentlich habe ich ein bereits funktionierendes Skript.
Jetzt würde ich gerne die Strings im GUI eingeben und nach Drücken des Run-Buttons mein Skript ausführen lassen, welches auf die Strings aus dem GUI zugreifen soll.
Wie stelle ich es nun an, dass ich nach Aufruf des Skriptes auf die Variablen zugreifen kann? Sprich im Skript so etwas setzen kann wie
Code:
%mein skript
Titel = get(handles.set_titel,'String');
% und jetzt werden tolle Sachen mit dem String "Titel" gemacht...
der restliche GUI-Code sieht dann irgendwie so aus:
Code:
functionvarargout = AVES(varargin) % AVES MATLAB code for AVES.fig % AVES, by itself, creates a new AVES or raises the existing % singleton*.
%
% H = AVES returns the handle to a new AVES or the handle to % the existing singleton*.
%
% AVES('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in AVES.M with the given input arguments.
%
% AVES('Property','Value',...) creates a new AVES or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before AVES_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to AVES_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 AVES
% Last Modified by GUIDE v2.5 07-Jul-2015 17:27:47
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @AVES_OpeningFcn, ...
'gui_OutputFcn', @AVES_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
ifnargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
% --- Executes just before AVES is made visible. function AVES_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 AVES (see VARARGIN)
% Choose default command line output for AVES
handles.output = hObject;
% UIWAIT makes AVES wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. functionvarargout = AVES_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;
function set_title_Callback(hObject, eventdata, handles) % hObject handle to set_title (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of set_title as text % str2double(get(hObject,'String')) returns contents of set_title as a double
% --- Executes during object creation, after setting all properties. function set_title_CreateFcn(hObject, eventdata, handles) % hObject handle to set_title (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. ifispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
end
function set_input_location_Callback(hObject, eventdata, handles) % hObject handle to set_input_location (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of set_input_location as text % str2double(get(hObject,'String')) returns contents of set_input_location as a double
% --- Executes during object creation, after setting all properties. function set_input_location_CreateFcn(hObject, eventdata, handles) % hObject handle to set_input_location (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. ifispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in start_programm. function start_programm_Callback(hObject, eventdata, handles) % hObject handle to start_programm (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % assignin('base', 'Titel',get(handles.set_title,'String'));
später kommen dann noch Voodoo-Sachen wie "Browse-Könpfe" dazu, daran werde ich ziemlich sicher auch wieder verzweifeln
ich bin mir auch ziemlich sicher, dass das jetzt sehr unverständlich war, da ich selbst nicht genau verstehe was da passiert ist es schwer eine verständliche Frage zu formulieren, ich entschuldige mich dafür
mach aus den skript einfach eine funktion und übergib ihm die werte die er brauch.
das ist die übersichtlichste und einfachste lösung.
grüße
_________________
daran hatte ich schon gedacht, aber ich hatte gehofft, dass es eine schönere Lösung gibt.
Kann ich denn dann in dieser Funktion weitere Funktionen aufrufen?
sonst wird das echt eklig
und blöde Frage:
Mein eigentliches Problem ist doch, dass ich meinen normalen Workspace ( ich glaub der heißt 'base') um eine Ebene verschiebe, oder? <-- das ist jetzt aus reinem Interesse
Kann ich denn dann in dieser Funktion weitere Funktionen aufrufen?
warum sollte das nicht gehen?
Zitat:
Mein eigentliches Problem ist doch, dass ich meinen normalen Workspace ( ich glaub der heißt 'base') um eine Ebene verschiebe, oder? <-- das ist jetzt aus reinem Interesse
hmm um eine ebene verschieben ist jetzt eine sehr komische Terminologie.
jede funktion hat ihren eigenen variablen raum. so auch deine gui und die callbacks.
das mag auf den ersten blich stören. ist aber sehr hilfreich wenn die programme größer als 3 zeilen werden.
_________________
ich gebe dir vollkommen recht!
ich denke, dass es schon praktisch ist. Bei mir war nur das Problem, dass im Nachhinein an einem funktionierenden Skript etwas zu ändern immer "schwierig" ist. À la " never touch a running system"
aber vielen dank für die Hilfe, habe das jetzt so gemacht, und alle damit auftretenden Probleme gelöst ( ganz alleine, ich bin ja schon sooo groß :p )
und die "browse-funktion" habe ich sogar auch schon eingebunden, war nur halb so überfordert wie ich gedacht hatte.
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.