Verfasst am: 08.11.2011, 18:09
Titel: Werte aus Eingabemaske direkt in Textfeld anzeigen lassen
Hallo zusammen,
ich [Anfänger] habe folgendes vor:
In einem popup wird eine Zeile gewählt. dann erscheint direkt eine Eingabmaske, in die ich Werte (u.a. Bauteillängen) eintrage. Diese Werte müssen in den WS. Bis dahin klappt bei mir auch alles.
Nun kommt der Knackpunkt: gleichzeitig mit Bestätigung der eingegebenen Werte soll die Bauteillänge in einem Textfeld im GUI ausgegeben werden.
(Im folgenden sollen in weiteren popups weitere Längen addiert werden ("Gesamtlaenge"), das aber nur als Randbemerkung.)
Das schaffe ich nicht. Ich schaffe es zwar, einen string anzeigen zu lassen, aber keine Variable mit Zahlenwert.
Hier ein wenig Code, unten drunter noch ein bisschen Text:
Code:
% --- Executes just before GUI_Temptex is made visible. function GUI_Temptex_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 GUI_Temptex (see VARARGIN)
% UIWAIT makes GUI_Temptex wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. functionvarargout = GUI_Temptex_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 selection change in Komponente1. function Komponente1_Callback(hObject, eventdata, handles) % hObject handle to Komponente1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
ich bin die ganze Zeit an der letzten Zeile vor "case 2" dran.
das, was jetzt dort drin steht, wird mit "Undefined function or variable"(Daten1_1) kommentiert, obwohl es diese Variable ja schon im WS gibt. Funktioniert allerdings auch nciht mit einer anderen Variable wie z.B. a=2;
ich bin nicht sicher ob ich das ganze genau verstanden habe.
1. aus einer Gui variablen in den WS per assignin rein zu packen macht man nicht!!!
2. das ist auch der Grund für Dein Problem. Du weißt die Variable Daten1_1 dem "base Workspace" zu. Damit ist die Variable in Deiner Gui Routine nicht sichtbar. Das sollte Dir beim debuggen auffallen da diese Variable nicht in dem aktuellen WS auftaucht.
Arbeite lieber mit den Mitteln die für die Variablenübergabe vorgesehen sind:
So, also mit den Hinweisen von "draussen" klappt das leider nicht
1. es wird nichts in das textfeld geschrieben
2. die Ausgabe mit Daten=GUI_Temptex ergibt eine Gesatmzahl - aber ich lese ja 4 einzelne Werte ein. Mit meiner Variante bekomme ich die wenigstens als Cell in den WS.
Weiß da jemand weiter?
Ich glaube, ich hab das noch nicht so ganz gecheckt, wo was angekündigt werden muss und vor allem wo die eingebenen Daten hinterlegt sind, wenn ich die nicht im WS abspeichere.
Du könntest mal Deinen gesamten Code posten. Und nochmal genau erklären was Du erreichen willst. Wo wann was angezeigt werden soll und vor allem welcher Art die Variablen sind die Du verwendest. Du kannst ja z.B. keine Zahl einfach als string verwenden. Am besten ein konkretes Beispiel.
Ist Dein Textfeld richtig definiert? Ist "Gesamtlaenge" der Tag des Textfeldes? Wichtig ist auch, dass die handles structure upgedated wird (wie bereits beschrieben).
Die Verwendung von "varargout" in der "outputfunction" war nur schemenhaft dargestellt. Das lässt sich aber auch detailiert klären wenn klar ist welche variablen wie übergeben werden sollen.
"Ich glaube, ich hab das noch nicht so ganz gecheckt, wo was angekündigt werden muss und vor allem wo die eingebenen Daten hinterlegt sind, wenn ich die nicht im WS abspeichere. "
Während die gui ausgeführt wird, steht immer die handles structure zur Verfügung (man kann auch andere structs selbst definieren). In der handles structure kann man alle Daten ablegen, die man mal irgendwo in der gui braucht. In der handles structure liegen auch alle Informationen der gui Objekte (Testfelder, Buttons etc.). Wird das handles structure geändert, muss handles durch den Befehl
aktualisiert werden um Änderungen wirksam zu machen.
Alle Variablen die nicht mit mit der handles structure (oder anderen "gui variablen" die dann auch aktualisiert werden müssen) zusammenhängen sind nur in den aktuellen Funktionen verfügbar. In Deinem Beispiel ist z.B. die Variable "answer" nur in der Funktion
Code:
function Komponente1_Callback(hObject, eventdata, handles)
Danke für deine Erklärung!
Ich habe aber gestern das ganze GUI selbst programmiert. Gefällt mir irgendwie besser und alles ist verfügbar
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.