ToZi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 16.06.2009, 16:20
Titel : 4 Checkboxen erstellen
Hallo,
ich mache gerade meine allerersten Schritte mit MatLab und hätte mal ne Frage.
Ist (bzw. wie geht es) es möglich ein Fenster (figure) zu öffnen auf dem sich 4 Checkboxen (links untereinander) und ein OK-Button (unten rechts) befinden.
Wenn dann der "OK" - Button gedrückt wird, wird eine Funktion mit 4 Parametern (also jeweils den Werten (0/1) der checkboxen) aufgerufen.
Irgendwie stehe ich da gerade total auf dem Schlauch....
Gruß,
Zito
steve
Ehrenmitglied
Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
Verfasst am : 16.06.2009, 16:33
Titel :
Moin,
klar geht das.
Guck dir mal die Beispiele hier im Forum zum Thema GUI an (Skripte-Ecke). Versuch dich mal etwas reinzudenken in das Thema GUI (auch die Hilfe gibt einiges dazu her) und bei weiteren Fragen... - weißt ja
Gruß
Alex
_________________ >> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
ToZi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 16.06.2009, 17:01
Titel :
Hallo,
habe jetzt deine funktion set_uicontrol gefunden ^^
Dazu gleich mal ne Frage welche eigenlich nix mit dem Problem zu tun hat.
wie funktioniert die positionierung ?
'Position',[.375,.375,.25,.25]);
ist das [Xstart Ystart Xend Yen] ? und wenn .x .y ist das dann eine relative angabe ?
Wenn ich deine checkboxen jetzt untereinander haben möchte muss ich dann :
Code:
uicontrol ( ckb,'Style ','checkbox ','String ','1 ',...
'Units ','normalized ','pos ',[ 0 ,0 ,1 /8 ,1 ] ) ;
uicontrol ( ckb,'Style ','checkbox ','String ','2 ',...
'Units ','normalized ','pos ',[ 0 , 1 /8 ,1 /8 ,1 ] ) ;
uicontrol ( ckb,'Style ','checkbox ','String ','3 ',...
'Units ','normalized ','pos ',[ 0 ,2 /8 ,1 /8 ,1 ] ) ;
uicontrol ( ckb,'Style ','checkbox ','String ','4 ',...
'Units ','normalized ','pos ',[ 0 ,3 /8 ,1 /8 ,1 ] ) ;
schreiben ?
steve
Ehrenmitglied
Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
Verfasst am : 16.06.2009, 17:45
Titel :
Moin,
die Positionen werden mit [xStart yStart Breite Höhe] angegeben, dabei wird von links unten angefangen zu zählen. Bei mir habe ich als 'Units' 'normalized' verwendet, das bedeutet, dass die Größen in Abhängigkeit der Abmessungen des 'Parent'-Objekts berechnet werden. Wenn du die untereinander haben willst, dann musst du darauf achten, dass "xStart" bei allen gleich ist und die Differenz zwischen je 2 "yStart" mindestens "Höhe" ist. Damit das erste Objekt auch oben steht, muss "yStart" bei diesem am größten sein.
Ich hoffe das hilft schonmal weiter...
Gruß
Alex
_________________ >> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
ToZi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 16.06.2009, 17:46
Titel :
ich habe mal folgenden code geschrieben :
Code:
figure ( h.this )
delete_grp( h)
hh.grp = uipanel ( ...
'Units ','normalized ',...
'Position ',[ .14 .02 .84 .96 ] ) ;
BackgroundColor = get ( hh.grp ,'BackgroundColor ') ;
hh.header = uicontrol ( ...
'Style ','text ',...
'Units ','pixels ',...
'Position ',[ 50 810 600 40 ] ,...
'parent ',hh.grp ,...
'String ','TESTLAUF ',...
'HorizontalAlignment ','center ',...
'FontSize ',20 ,...
'BackgroundColor ',BackgroundColor) ;
hh.btn_check1 = uicontrol ( ...
'Style ','checkbox ',...
'String ','FiF ',...
'Units ','pixels ',...
'Position ',[ 50 400 100 30 ] ,...
'Parent ',hh.grp ) ;
hh.btn_check2 = uicontrol ( ...
'Style ','checkbox ',...
'String ','MiM ',...
'Units ','pixels ',...
'Position ',[ 50 350 100 30 ] ,...
'Parent ',hh.grp ) ;
hh.btn_check3 = uicontrol ( ...
'Style ','checkbox ',...
'String ','FiB ',...
'Units ','pixels ',...
'Position ',[ 50 300 100 30 ] ,...
'Parent ',hh.grp ) ;
hh.btn_check4 = uicontrol ( ...
'Style ','checkbox ',...
'String ','MiM ',...
'Units ','pixels ',...
'Position ',[ 50 250 100 30 ] ,...
'Parent ',hh.grp ) ;
hh.btn_go = uicontrol ( ...
'Style ','pushbutton ',...
'String ','START ',...
'Units ','pixels ',...
'Position ',[ 200 150 100 30 ] ,...
'Parent ',hh.grp ,...
'Callback ','TEST1( ''testreport'') ; ') ;
ich denke er macht zumindest mal 4 Checkboxen und einen Start-Button ^^
Wie kann ich jetzt aber die werte mit dem Start Button der Funktion "testreport" übergeben ?
steve
Ehrenmitglied
Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
Verfasst am : 16.06.2009, 18:00
Titel :
Moin,
was ist testreport für eine Funktion? Was benötigt sie als Parameter?
Im Prinzip musst du jetzt eine Callback-Funktion schreiben.
Beispiel:
Code:
function testGUI
% [...]
hh.btn_go = uicontrol ( ...
'Style ','pushbutton ',...
'String ','START ',...
'Units ','pixels ',...
'Position ',[ 200 150 100 30 ] ,...
'Parent ',hh.grp ,...
'Callback ',@GoButtonCallback) ;
function GoButtonCallback( hObject, eventdata)
FiF = get ( hh.btn_check1 ,'Value ') ;
% usw.
% Aufruf deiner Funktion testreport (?!)
testreport( FiF,... ) ;
end
end
Ohne Gewähr, da nicht getestet...
Gruß
Alex
_________________ >> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
ToZi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 16.06.2009, 18:26
Titel :
Schaut schon mal sehr gut aus, schon mal vielen vielen Dank !
Aber ich hätte noch ne Frage :
was sind die beiden Parameter hObject und eventdata ? so wie ich das sehe wird doch die Funktion ohne Parameter aufgerufen oder ?
steve
Ehrenmitglied
Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
Verfasst am : 16.06.2009, 20:11
Titel :
Moin,
die beiden Parameter werden automatisch übergeben. "hObject" ist der handle zu dem Objekt, von welchem die Callback aufgerufen wurde und "eventdata" ist im Moment soweit ich weiß ein Platzhalter, kann aber auch für eigene Zwecke verwendet werden (ich hab hier im Forum schon mal was dazu gelesen).
Normalerweise wird noch die handles-Struktur des GUIs übergeben, da du allerdings keine erstellt hast, hab ich das weggelassen.
Gruß
Alex
_________________ >> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
ToZi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 17.06.2009, 12:03
Titel :
Wenn ich das so mache bekomme ich folgende Fehlermeldung :
steve
Ehrenmitglied
Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
Verfasst am : 17.06.2009, 12:08
Titel :
Moin,
hast du das denn genauso gemacht wie ich geschrieben habe? Eine "große" Funktion die die Erstellung der Figure mit den UIControls beinhaltet und in dieser dann die Callback definiert? Dann sollte es eigentlich gehen.
Ansonsten kannst du es auch so machen:
Gruß
Alex
_________________ >> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
ToZi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 17.06.2009, 15:41
Titel :
Hallo habs genauso gemacht, ja , ging aber nicht.
mit :
geht es !
Kann ich das aber auch mit dem "Namen" der checkbox machen anstatt des Strings ?
z.B :
Das ma da nicht nach "FiF" sucht sondern nach "btn_check1" ?
ToZi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 17.06.2009, 15:49
Titel :
Ach und noch eine Frage.
Ich hätte gern das von meinen 4 checkboxen, die ersten beiden als Default-Wert ausgewählt sind, geht das ?
ToZi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 17.06.2009, 16:10
Titel :
Ok, also das mit den Default-Wert habe ich
Code:
btn_check1 = uicontrol ( ...
'Style ','checkbox ',...
'String ','FiF ',...
'Units ','pixels ',...
'Position ',[ 20 190 250 20 ] ,...
'Parent ',grp,...
'Value ',1 ) ;
Aber on ich diese checkbox auch mit "btn_check1" ansteuern bzw. ob ich den wert davon so bekommen kann weiss ich leider noch nicht
steve
Ehrenmitglied
Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
Verfasst am : 17.06.2009, 18:12
Titel :
Moin,
dann probier Folgendes:
Code:
function testGUI
% [...]
hh.btn_go = uicontrol ( ...
'Style ','pushbutton ',...
'String ','START ',...
'Units ','pixels ',...
'Position ',[ 200 150 100 30 ] ,...
'Parent ',hh.grp ,...
'Callback ',{ @GoButtonCallback,hh} ) ;
function GoButtonCallback( hObject, eventdata,hh)
FiF = get ( hh.btn_check1 ,'Value ') ;
% usw.
% Aufruf deiner Funktion testreport (?!)
testreport( FiF,... ) ;
end
end
Sollte jetzt hoffentlich klappen. Ansonsten müsstest du dich mal in die Verwendung von
einarbeiten. In der Skripte-Ecke gibt es dazu auch schon ein Beispiel.
Gruß
Alex
_________________ >> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
ToZi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 17.06.2009, 20:13
Titel :
Funktioniert leider nicht
Folgende Fehlermeldung kommt dann :
Anmerkung:
habe hh.btn_check1 in btn_ck1 unbenannt.
Naja werde ich mal schauen müssen wie ich das hinbekomme ... ich weiss zwar momentan nicht wie ich das machen soll aber mal sehen.
Vielen, vielen Dank @ Steve !!! echt super wie du immer tipps gibst.
Nochmal Danke!
Gehe zu Seite 1 , 2 Weiter
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
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.