Verfasst am: 09.11.2018, 15:18
Titel: Ranking erstellen mit Radiobuttons
Hallo!
Ich möchte per GUI den User eine Art "Ranking" festlegen lassen.
Also zum Beispiel bekommt der User 3 Bilder und er soll sie dann nach Gefallen sortieren.
Ich stelle mir das ungefähr so vor, dass die drei Bilder zu sehen sind und darunter
Button Groups mit je 3 Buttons (1., 2., 3.). Der User wählt dann pro Bild eine "Platzierung" aus. Gefällt ihm Bild 1 am besten, würde er dann in der Button Group den Radiobutton "1." auswählen usw.
Am Ende drückt er den Push Button "OK" und diese Platzierungen werden dann abgespeichert. Ich bin leider absoluter GUI Neuling und entschuldige mich deshalb im Voraus für blöde Fragen.
Wie kann ich zu jeder Button Group den ausgewählten Radio Button abspeichern?
Ich habe es schon mit gco und Selected Object probiert aber ich setze die Befehle wahrscheinlich an die falsche Stelle.
Ich möchte im Prinzip nach Drücken des Push Buttons einen Vektor mit:
Bild 1 1.
Bild 2 3.
Bild 3 2.
Wie kann ich das realisieren?
Vielen Dank im Voraus für eure Hilfe.
wie hast du die Oberfläche erstellt?
Ist die Anzahl der Bilder fest oder variabel?
Mit uicontrol, GUIDE oder App Designer? Meine Empfehlung wäre generell letzteres. Falls die Anzahl der Bilder variabel ist, bleibt aber meines Wissens erstmal nur der Weg über uicontrol. Dann würde ich aber ohnehin eher eine Listbox und zwei Pushbuttons verwenden, mit denen ein ausgewähltes Bild im Ranking nach oben oder unten verschoben werden kann.
Grundsätzlich bitte immer den Code zeigen, den du versucht hast. Eine kleine Korrektur vorzunehmen ist oft einfacher als von vorne herumzuprobieren.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Danke schonmal für die Antwort!
Ich habe Guide verwendet bzw. habe ich ja bis auf die Button Platzierung sowieso noch nicht wirklich was gemacht (habe also nur den automatisiert erstellten Code, soll ich den trotzdem posten?).
Die Anzahl der Bilder ist mehr oder weniger variabel, einmal sollen es 3, einmal 4 sein.
meine Empfehlung wäre dann wie gesagt App Designer, da in vieler Hinsicht intuitiver.
Bei GUIDE müsste der Code in die SelectionChangedFcn der Button Groups, und dort die Eigenschaft Value abfragen.
Wenn es mal 3, mal 4 Bilder sind, sehe ich höchstens die Möglichkeit, die 4. Button Group auf unsichtbar zu setzen.
Aber wie gesagt:
Falls die Anzahl der Bilder variabel ist, würde ich eher eine Listbox und zwei Pushbuttons verwenden, mit denen ein ausgewähltes Bild im Ranking nach oben oder unten verschoben werden kann.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Ich habe es jetzt erstmal so gemacht und es funktioniert an sich auch, ich bekomme genau das Ergebnis, das ich möchte, wenn ich Schritt für Schritt durch den Code gehe.
Jetzt würde ich aber gerne als Output des pushbutton Callbacks die
A = 1.
B = 2.
usw. abspeichern aber wenn ich den Callback separat aufrufe, klappt das nicht.
Ich weiß, dass Variablen nur lokal innerhalb der jeweiligen Funktion existieren aber wie kann ich nach dem Pushbutton einen Vektor mit den Ergebnissen "behalten"?
Code:
% --- Executes on button press in pushbutton9. function[a, b, c, d] = pushbutton9_Callback(hObject, eventdata, handles) % hObject handle to pushbutton9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
switchget(get(handles.uibuttongroup2,'SelectedObject'),'Tag') case 'radiobutton17', a = 'A = 1.';
case 'radiobutton18', a = 'A = 1.';
case 'radiobutton19', a = 'A = 1.';
case 'radiobutton20', a = 'A = 1.';
switchget(get(handles.uibuttongroup9,'SelectedObject'),'Tag') case 'radiobutton33', b = 'B = 1.';
case 'radiobutton34', b = 'B = 2.';
case 'radiobutton35', b = 'B = 3.';
case 'radiobutton36', b = 'B = 4.';
switchget(get(handles.uibuttongroup10,'SelectedObject'),'Tag') case 'radiobutton37', c = 'C = 1.';
case 'radiobutton38', c = 'C = 2.';
case 'radiobutton39', c = 'C = 3.';
case 'radiobutton40', c = 'C = 4.';
switchget(get(handles.uibuttongroup11,'SelectedObject'),'Tag') case 'radiobutton41', d = 'D = 1.';
case 'radiobutton42', d = 'D = 2.';
case 'radiobutton43', d = 'D = 3.';
case 'radiobutton44', d = 'D = 4.';
P.S.: mit App Designer wäre das einfacher.
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.