Verfasst am: 16.11.2011, 06:49
Titel: Gui -edit felder/static text felder in for Schleife benennen
Hallo!
Ich baue ein GUI mittels guide.
Ich baue Schichten mit jeweils den gleichen Parametern (Hoehe, Staerke, Breite, Farbe). Die Edit/Static text felder habe ich alle manuell benannt. Nun moechte ich aber, dass der Nutzer angibt, wieviele Schichten es gibt und das Gui selbststaendig die Schichten benennt, damit ich nachher mit einer for-Schleife darauf zugreifen kann.
Code:
function hoehe1_Callback(hObject, ~, handles) function hoehe2_Callback(hObject, ~, handles) function hoehe3_Callback(hObject, ~, handles) ... function hoehex_Callback(hObject, ~, handles)
Geht das zu bewerkstelligen?
Bzw. wenn die Benennung nur manuell geht, kann ich dann wenigstens die Callbacks automatisieren, damit ich nicht immer hoehe1 in hoehex umwandeln muss?
Also habe ich diese Zahlen weggelassen, aber ich weiss noch nicht, wie du alle hoehe_Callback nennen kannst, da der Callback-Name doch den Tag angibt und du keinen Tag doppelt haben kannst.
Ich habe die vier Test-Dateien angehaengt - es funktioniert leider nicht.
Verfasst am: 17.11.2011, 12:20
Titel: Re: geht leider nicht
Hallo chris4aus,
Duie Fehlermeldung sagt, dass die zeile 100 in Spalte 45 einen Syntax-Fehler enthält. Wenn Du diese Zeile hier postest, können wir Dir auch mitteilen, was das Problem ist.
Man kann natürlich Tags auch doppelt vergeben und die Callbackfunktionen bei Bedarf per Hand setzen. GUIDE ist zwar nicht besonders flexibel, aber Du kann doch alles nach Belieben anpassen.
mit dieser Index 1. Aber dann sagt er mir halt Syntax-error.
Aber ich bin gerade dabei, die Uebersicht anders aufzubauen (anstatt die Panels uebereinander, ein Panel umbenennen und die Werte in einem struct speichern und wieder laden - ich muss da noch ein wenig rumprobieren...)
Verfasst am: 18.11.2011, 06:14
Titel: Neue Struktur
Hallo!
Ich bin jetzt so weit, dass sich die Ueberschriften im Gui aendern und auch die Werte gespeichert werden. (Muss noch pruefen, was passiert, wenn Start_button gedrueckt wird und wie ich "alte" Werte lade)
Aber damit brauche ich nur noch eine Callback_Funktion pro selben Faktor:
Code:
function layer_no_Callback(hObject, ~, handles)% NoLayers
test_par_whole(hObject,handles);
turn_lay(handles);
% --- Executes on slider movement. function slider_layer_Callback(hObject, ~, handles)
sliderpos = round(get(hObject,'Value'));
number_name = get(handles.panel_L,'Title');
% if new value is different to old value if sliderpos ~= str2double(number_name(end))
popupheight_stage_Callback(gcbo, [], handles);
handles = guidata(hObject);
number_name = get(handles.panel_L,'Title');
% create scaffold out of entered values % create cells to speed up loops
sub_width = zeros(str2double(get(handles.sub_no1,'String')),1);
hspace = zeros(str2double(get(handles.sub_no1,'String')),1);
F_le = zeros(str2double(get(handles.sub_no1,'String')),1);
% create cells and matrices to save later
max_x = 0;
for s=1:str2double(get(handles.sub_no1,'String'))% for each sublayer
name_subwi = findobj('Tag',['sub_width1',num2str(s)]);
name_hspa = findobj('Tag',['hspace1',num2str(s)]);
name_FRle = findobj('Tag',['FRle1',num2str(s)]);
sub_width(s)=str2double(get(name_subwi,'String'));
hspace(s)=str2double(get(name_hspa,'String'));
F_le(s)=str2double(get(name_FRle,'String'));
% maximum dimensions of stage
max_x = max(max_x,... sqrt((handles.height + ((sub_width(s)/hspace(s))+2)...
*str2double(get(handles.vspace,'String')))^2 + (sub_width(s))^2));
end% sublayer
Nach meiner Erfahrung sollte man dynamische GUIs (bei denen die Anzahl der Elemente von Anwendereingaben abhängt) ohne GUIDE programmieren. Dann solltest Du Deine Schichten auch einfacher selbst automatisiert programmieren können. Hast Du das schon mal versucht?
Verfasst am: 22.11.2011, 01:17
Titel: selbst programmieren
Hallo Jette!
Ich habe noch kein GUI ohne guide erstellt. Und aus Zeitmangel...
Das Programm laeuft jetzt erstmal - aber du hast recht, wenn ich das Programm nochmal neu schreiben wuerde, wuerde ich wahrscheinlich auf guide verzichten.
Gerade bin ich auch auf Tabs gestossen, die natuerlich fuer meine Sache ganz super sind --> einfacher zu verstehen als den slider.
Daher werde ich nach Beenden alle Funktionen die Benutzeroberflaeche wahrscheinlich neu schreiben (ich brauche erst mal was zum Praesentieren!! )
Danke,
Christiane
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.