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

schon wieder GUI Werte zu Sub Gui, Ausgabe Sub Gui Text

 

gapbeherif

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2013, 14:34     Titel: schon wieder GUI Werte zu Sub Gui, Ausgabe Sub Gui Text
  Antworten mit Zitat      
Hallo,
ich habe folgendes Problem:
In meiner gui1 kann man Informationsstellen zum Codieren eingeben
Bsp: 1 0 1 0 1 0 1
Wenn man dann auf Codieren drückt, codiert mein Programm, was
auch in gui1 angezeigt wird;
ich habe es leider nicht hinbekommen, das Coderwort in gui2 anzuzeigen;
ich weiß das diese Frage mehrmals schon hier drankam, aber
leider hats ned geklappt, vlt. kann mir jemand helfen;

darüberhinaus wird im Commandwindow ein längerer Text angezeigt;
kann mir jemand helfen diesen Text in der gui2 im Edit-Text-Feld anzuzeigen?

Bin über jegliche Hilfe dankbar
Gruß

gui2.m
 Beschreibung:

Download
 Dateiname:  gui2.m
 Dateigröße:  17.22 KB
 Heruntergeladen:  356 mal
gui2.fig
 Beschreibung:

Download
 Dateiname:  gui2.fig
 Dateigröße:  7.24 KB
 Heruntergeladen:  339 mal
gui1.m
 Beschreibung:

Download
 Dateiname:  gui1.m
 Dateigröße:  24.75 KB
 Heruntergeladen:  343 mal
gui1.fig
 Beschreibung:

Download
 Dateiname:  gui1.fig
 Dateigröße:  9.67 KB
 Heruntergeladen:  375 mal


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.09.2013, 15:35     Titel: Re: schon wieder GUI Werte zu Sub Gui, Ausgabe Sub Gui Text
  Antworten mit Zitat      
Hallo gapbeherif,

Herzlich willkommen im Forum.

Wir haben nun eine ungefähre Problem-Beschreibung und Code. Wie können wir Dir nun konkret helfen?

Zitat:
ich habe es leider nicht hinbekommen, das Coderwort in gui2 anzuzeigen;

Das ist zu allgemein um effizient beantwortet werden zu können. Kannst Du den relevanten Teil des Codes posten und konkret zeigen, wo das Problem auftritt?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
gapbeherif

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2013, 17:07     Titel: Re: schon wieder GUI Werte zu Sub Gui, Ausgabe Sub Gui Text
  Antworten mit Zitat      
In meiner gui1 habe ich ein Panel mit den Feldern c0 bis c14;
ebenso in gui2;

in gui1 kann ich die Werte der Felder darstellen lassen,
in gui2 nicht, weil ich es nicht hingekriegt habe die Werte von gui1 auf gui2
zu übertragen;

zudem habe ich einen Text im Command Window stehen, den ich nicht im
Command Window sehen möchte, sondern im Edit-Text-Feld in gui2

Gruß
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.09.2013, 23:11     Titel: Re: schon wieder GUI Werte zu Sub Gui, Ausgabe Sub Gui Text
  Antworten mit Zitat      
Hallo gapbeherif,

Zitat:
in gui2 nicht, weil ich es nicht hingekriegt habe die Werte von gui1 auf gui2 zu übertragen;

Wie hast Du es versucht und was ist genau gescheitert?

Zitat:
zudem habe ich einen Text im Command Window stehen, den ich nicht im Command Window sehen möchte, sondern im Edit-Text-Feld in gui2

Wie kommt der Text denn ins Command Window? Was hindert Dich daran ihn in das gewünschte Text-Feld zu schreiben?

Wir benötigen die Fragen noch viel konkreter um sie effizient und sinnvoll beantworten zu können.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
gapbeherif

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2013, 10:08     Titel: Re: schon wieder GUI Werte zu Sub Gui, Ausgabe Sub Gui Text
  Antworten mit Zitat      
Hallo Jan,

also in gui1.m steht:
Code:
disp(sprintf('\n\nDie eingegeben Information lautet %d %d %d %d %d %d %d\n\n',msg))


damit kann ich den gewünschten Text im Command Window anzeigen;
möchte ich aber nicht;
ich will den Text im Edit-Fenster in gui2 anzeigen lassen, welches ich mit dem
Tag 'Ausgabe' bezeichnet habe;
wie muss ich das ändern?
----------------------------------------------------------------------------------------
darüber hinaus:

ich gebe in gui1 meine Information ein:
Code:

ia0 = str2num(get(handles.ia0,'string'));
ia1 = str2num(get(handles.ia1,'string'));
msg = [ia0 ia1];
% codiere sie
code = encode(msg, 15, 2, 'cyclic');
ca0  = code(1,1);  
ca1  = code(1,2);
% und gebe sie in gui1 wieder aus
set(handles.ca0,'string',ca0);  
set(handles.ca1,'string',ca1);
% ich möchte aber nun ca0 und ca1 in gui2  auch ausgeben

% habe es so versucht
%i n gui1 steht:
gui2;
setappdata(0, 'gui1', ca0);
setappdata(0, 'gui1', ca1);

%i n gui2 steht
ca0 = getappdata(0,'gui1');  
set(handles.ca0,'string',ca0);
ca1 = getappdata(0,'gui1');  
set(handles.ca1,'string',ca1);


da krieg ich nicht die richtige Zahl in gui2 zu sehen;
wo kann der Fehler liegen?
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.09.2013, 12:01     Titel: Re: schon wieder GUI Werte zu Sub Gui, Ausgabe Sub Gui Text
  Antworten mit Zitat      
Hallo gapbeherif,

Um etwas im GUI2 anzeigen zu lassen benötigt man zunächst den Handle der Figure. Wie Du den bekommst oder ob der schon bekannt ist, kann ich nicht wissen. Vielleicht:
Code:
gui2H = findobj(allchild(0), 'flat', 'Tag', 'GUI2');

Nun kann man den Handle zu dem Text-Objekt erhalten, in dem du den Text schreiben möchtest:
Code:
gui2Handles = guidata(gui2H);
S = sprintf('\n\nDie eingegeben Information lautet %d %d %d %d %d %d %d\n\n',msg);
set(gui2Handle.edit1, 'String', S);

Wie die Namen oder Tags der Grafik-Objekte sind, kann ich wieder nicht erraten. Das musst Du also entsprechend anpassen. Vielleicht "gui2Handle.Ausgabe"?

Code:
ca0  = code(1,1);  
ca1  = code(1,2);
% und gebe sie in gui1 wieder aus
set(handles.ca0, 'string', ca0);  
set(handles.ca1, 'string', ca1);

Welchen Typ hat denn "ca1"? Ist dies ein String? Wenn nicht, hilft SPRINTF.

Zitat:
ich möchte aber nun ca0 und ca1 in gui2 auch ausgeben

Das geht equivalent zum ersten Beispiel.

Zitat:
Code:
setappdata(0, 'gui1', ca0);
setappdata(0, 'gui1', ca1);
 

Hier wird das Field 'gui1' in den ApplicationData des Root-Objektes zunächst geschrieben und direkt danach wieder überschrieben. Aber wozu dienen die ApplicationData des Root-Objektes hier überhaupt?

Zitat:
%i n gui2 steht

Wo steht das? Und wie wird der Code aufgerufen?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
gapbeherif

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2013, 14:12     Titel: Re: schon wieder GUI Werte zu Sub Gui, Ausgabe Sub Gui Text
  Antworten mit Zitat      
Danke Jan für deine Antwort;

ich habe das jetzt so versucht:
in meiner gui1 steht:

Code:
gui2;
gui2H = findobj(allchild(0), 'flat', 'Tag', 'gui2');
gui2Handles = guidata(gui2H);
S = sprintf('\n\nDie eingegeben Information lautet %d %d %d %d %d... %d%d\n\n',msg);
set(gui2Handles.Ausgabe, 'String', S);


es erscheint folgende Fehlermeldung:
Error using guidata (line 89)
H must be the handle to a figure or figure descendent.

in meiner gui2 habe ich im Momment noch gar nichts stehen;
kannst du mir nochmal helfen und sagen wo der Fehler liegt?
Gruß
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.09.2013, 16:33     Titel: Re: schon wieder GUI Werte zu Sub Gui, Ausgabe Sub Gui Text
  Antworten mit Zitat      
Hallo gapbeherif,

Mein Code ist nicht lauffähig, sondern ein Beispiel, wie es möglich sein könnte. Ich weiß ja nicht, wie die Tags in Deinem Fall heißen, also habe ich in
Code:
gui2H = findobj(allchild(0), 'flat', 'Tag', 'gui2');

mal "gui2" geraten. Bitte passe das an.

Zitat:
in meiner gui2 habe ich im Momment noch gar nichts stehen;

So? Aber du möchtest doch den String in ein bestimtmes GUI-Element hineinschreiben. Wie kann das funktionieren, wenn Du noch gar nichts im GUI hast?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
gapbeherif

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2013, 16:43     Titel: Re: schon wieder GUI Werte zu Sub Gui, Ausgabe Sub Gui Text
  Antworten mit Zitat      
also jetzt bin ich ein bischen verwirrt;
Auszug aus meiner gui1;

Code:
% --- Executes on button press in Codieren_button.
function Codieren_button_Callback(hObject, eventdata, handles)
% hObject    handle to Codieren_button (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
    ia0 = str2num(get(handles.ia0,'string'));
    ia1 = str2num(get(handles.ia1,'string'));
    ia2 = str2num(get(handles.ia2,'string'));
    ia3 = str2num(get(handles.ia3,'string'));
    ia4 = str2num(get(handles.ia4,'string'));
    ia5 = str2num(get(handles.ia5,'string'));
    ia6 = str2num(get(handles.ia6,'string'));
   
    msg = [ia0 ia1 ia2 ia3 ia4 ia5 ia6];
    code = encode(msg, 15, 7, 'cyclic');
    ca0  = code(1,1);  ca1  = code(1,2);  ca2  = code(1,3);
    ca3  = code(1,4);  ca4  = code(1,5);  ca5  = code(1,6);
    ca6  = code(1,7);  ca7  = code(1,8);  ca8  = code(1,9);
    ca9  = code(1,10); ca10 = code(1,11); ca11 = code(1,12);
    ca12 = code(1,13); ca13 = code(1,14); ca14 = code(1,15);

    set(handles.ca0,'string',ca0);   set(handles.ca1,'string',ca1);
    set(handles.ca2,'string',ca2);   set(handles.ca3,'string',ca3);
    set(handles.ca4,'string',ca4);   set(handles.ca5,'string',ca5);
    set(handles.ca6,'string',ca6);   set(handles.ca7,'string',ca7);
    set(handles.ca8,'string',ca8);   set(handles.ca9,'string',ca9);
    set(handles.ca10,'string',ca10); set(handles.ca11,'string',ca11);
    set(handles.ca12,'string',ca12); set(handles.ca13,'string',ca13);
    set(handles.ca14,'string',ca14);
   
    gui2;
    gui2H = findobj(allchild(0), 'flat', 'Ausgabe', 'gui2');
    gui2Handles = guidata(gui2H);
    S = sprintf('\n\nDie eingegeben Information lautet %d %d %d %d %d %d %d\n\n',msg);
    set(gui2Handles.Ausgabe, 'String', S);

----------------------------------------------------------------------------------
und Auszug aus meiner gui2:

% --- Executes just before gui2 is made visible.
function gui2_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 gui2 (see VARARGIN)

% Choose default command line output for gui2
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

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


% --- Outputs from this function are returned to the command line.
function varargout = gui2_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 Ausgabe_Callback(hObject, eventdata, handles)
% hObject    handle to Ausgabe (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 Ausgabe as text
%        str2double(get(hObject,'String')) returns contents of Ausgabe as a double


% --- Executes during object creation, after setting all properties.
function Ausgabe_CreateFcn(hObject, eventdata, handles)
% hObject    handle to Ausgabe (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 Close_button.
function Close_button_Callback(hObject, eventdata, handles)
% hObject    handle to Close_button (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
close(gcbf);


function ca0_Callback(hObject, eventdata, handles)
% hObject    handle to ca0 (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 ca0 as text
%        str2double(get(hObject,'String')) returns contents of ca0 as a double

% --- Executes during object creation, after setting all properties.
function ca0_CreateFcn(hObject, eventdata, handles)
% hObject    handle to ca0 (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 ca1_Callback(hObject, eventdata, handles)
% hObject    handle to ca1 (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 ca1 as text
%        str2double(get(hObject,'String')) returns contents of ca1 as a double


% --- Executes during object creation, after setting all properties.
function ca1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to ca1 (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
 
....
------------------------------------------------------------------------------
ich möchte ca0, ca1 ... ca14 in gui2 anzeigen lassen
hat leider trotz deiner Hilfe nicht geklappt,
oder mache ich gerade völlig was falsch

Gruß

[EDITED, Jan, Bite Code-Umgebung benutzene - Danke]
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 18.09.2013, 19:05     Titel:
  Antworten mit Zitat      
Hey,
der folgende Code ist nicht gerade sinnvoll.
Code:

gui2;
gui2H = findobj(allchild(0), 'flat', 'Ausgabe', 'gui2');
gui2Handles = guidata(gui2H);
S = sprintf('\n\nDie eingegeben Information lautet %d %d %d %d %d %d %d\n\n',msg);
set(gui2Handles.Ausgabe, 'String', S);
 


Ich gehe davon aus, dass gui2 dein m-File der 2. GUI ist? Dann versuch mal folgendes:
Code:

h2 = gui2; % gibt dir das figure handle der gui2 zurück
handles_gui2 = guidata(h2);
set(handles_gui2.Ausgabe, 'String', S);
 


Greetings

Marco

Edit:
Zudem hast du doch jetzt alle handles in deiner gui1 und kannst die gui2 nach belieben setzen... Wenn du auch in Callbacks der gui1 deine gui2 setzen willst, dann kannst du das auch machen z.B.:
Code:

% opening fcn gui1
handles.handles_gui2 = handles_gui2;
guidata(hObject,handles)

% in einem Callback von gui1
set(handles.handles_gui2.DEIN_EDIT_FELD_TAG_GUI2,'String','BLA BLA')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
gapbeherif

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2013, 20:41     Titel: Re: schon wieder GUI Werte zu Sub Gui, Ausgabe Sub Gui Text
  Antworten mit Zitat      
Vielen Dank für deine Antwort Marco,
ich habe es geschafft meiner Werte von gui1 zu gui2 zu 'übertragen'

aber!
bei der Übertragung des längeren Textes tritt ein Problem auf

S = sprintf('\n\nDie eingegeben Information lautet %d %d %d %d %d %d %d\n\n',msg);
set(handles_gui2.Ausgabe,'string',S);

erscheint im Command-Window folgender Hinweis

Warning: Single line Edit Controls can not have multi-line text
Warning: Single line Edit Controls can not have multi-line text
Warning: Single line Edit Controls can not have multi-line text

vlt. fehlt ein letzter Hinweis, sodass ich es dann hinbekomm
Gruß
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 18.09.2013, 21:38     Titel:
  Antworten mit Zitat      
Hey,
das habe ich mir gedacht. Wenn du ein Editfeld so setzen möchtest, dass es mehrere Zeilen anzeigt, dann musst du z.B. das Property vom edit Feld 'Max' auf 2 setzen, sodass max-min > 1 ist. Dann sollte es funktionieren.
Private Nachricht senden Benutzer-Profile anzeigen
 
gapbeherif

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2013, 07:59     Titel: Re: schon wieder GUI Werte zu Sub Gui, Ausgabe Sub Gui Text
  Antworten mit Zitat      
super, vielen Dank
ich habe alles hinbekommen
Gruß
 
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.