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

über GUI Werte eingeben und vorhandenes Skript ausführen

 

Vesuv

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2015, 10:16     Titel: über GUI Werte eingeben und vorhandenes Skript ausführen
  Antworten mit Zitat      
Hallo,

ich soll das erste Mal mit GUI arbeiten und muss zugeben, dass es mich etwas überfordert und ich langsam nur noch Bahnhof verstehe Sad

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:

function varargout = 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',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- 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;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes AVES wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = 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.
if ispc && 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.
if ispc && 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'));

skript_start; % <-- mein skript
 


später kommen dann noch Voodoo-Sachen wie "Browse-Könpfe" dazu, daran werde ich ziemlich sicher auch wieder verzweifeln Very Happy

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


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.07.2015, 10:29     Titel:
  Antworten mit Zitat      
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
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Vesuv

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2015, 11:19     Titel:
  Antworten mit Zitat      
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 Crying or Very sad

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
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.07.2015, 13:23     Titel:
  Antworten mit Zitat      
Zitat:
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.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Vesuv

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2015, 14:00     Titel:
  Antworten mit Zitat      
XD

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" Smile

aber vielen dank für die Hilfe, habe das jetzt so gemacht, und alle damit auftretenden Probleme gelöst Smile ( 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.
 
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.