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

radiobutton: nur ein Button auswählbar

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2009, 21:10     Titel: radiobutton: nur ein Button auswählbar
  Antworten mit Zitat      
Hallo

ich habe folgendes Problem: Ich habe 2 Radiobuttons und will erreichen, dass wenn einer ausgewählt wird, der andere auf 0 gesetzt wird .
Vielleicht kann mir jemand helfen.

% --- Executes on button press in radiobutton1.
function radiobutton1_Callback(hObject, eventdata, handles)
% hObject handle to radiobutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton1








% --- Executes on button press in radiobutton2.
function radiobutton2_Callback(hObject, eventdata, handles)
% hObject handle to radiobutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton1


Vielen Dank schon mal !

Viele Grüße


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.12.2009, 21:20     Titel:
  Antworten mit Zitat      
Hallo,

dazu muss eine Button Group in GUIDE gesetzt werden, und die Radio Buttons müssen in diese Button Group gezogen werden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.12.2009, 14:03     Titel:
  Antworten mit Zitat      
jetzt besteht aber ein anderes Problem:
ich habe erst 2 radiobuttons erstellt, dann die group und dann die buttons da reingezogen.
die abfrage im callback, ob der Button 1 oder 0 ist funktiniert nicht mehr.
ich will , wenn radibutton 1 ist, dass eine bestimmte Berechnung durchgeführt wird, und wenn nicht dann eine andere Berechnung.
Es gibt mir für k keinen wert zurück !

function radiobutton1_Callback(hObject, eventdata, handles)
% hObject handle to radiobutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton1

global k

k=get(hObject,'Value');


Vielen Dank schon im Voraus !
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.12.2009, 14:35     Titel:
  Antworten mit Zitat      
Hallo,

die Callback-Function ist auch nicht mehr aktiv. Sie wird durch die SelectionChangeFcn ersetzt / abgelöst.

Wenn du eine Button Group erstellst und die Radio Buttons reinziehst, kommt dementsprechend auch die Warnung

Zitat:
Warning: Callback for uicontrol of style radiobutton will be overwritten when added to a
UIBUTTONGROUP.
Use the SelectionChangeFcn property on the button group instead.


Der Vorteil davon: du hast beide Callbacks in einem (und eine globale Variable ist sowieso nicht nötig).

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.12.2009, 19:16     Titel:
  Antworten mit Zitat      
hallo

danke erst mal für die schnelle Antwort !

ja das habe ich gesehen.
aber die SelectionChangeFcn ist nirgends in meinem m-file...
und wie kann ich nun sagen, dass wenn radiobutton 1 gedrückt ist, eine bestimmte rechnnung ablaufen soll und wenn der andre button gedrückt ist, soll eine andere rechnung durchgeführt werden ...
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.12.2009, 22:48     Titel:
  Antworten mit Zitat      
Hallo,

gehe über GUIDE und Rechtsklick der Button Group. Da sollte es unter View die SelectionChange Function geben, die dann im M-File erstellt wird.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.12.2009, 13:03     Titel:
  Antworten mit Zitat      
super, das hat alles soweit geklappt.
jetzt hab ich nur noch ein Problem:
wenn ich das gui starte, dann ist der radiobutton ausgewählt, aber mit der get funktion liefert er mir noch keinen wert, sondern erst wenn ich butoon 2 anklicke und dann wieder 1.


function uipanel2_SelectionChangeFcn(hObject, eventdata, handles)
% hObject handle to the selected object in uipanel2
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)



k=get(handles.radiobutton1,'Value')
g=get(handles.radiobutton2,'Value')


viele grüße
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.12.2009, 11:37     Titel:
  Antworten mit Zitat      
Hallo,

man sollte da auch über SelectedObject gehen. Müsste sogar in der Kurzdoku der SelectionChangeFcn drin stehen.

Grüße,
Harald

P.S.: die SelectionChangeFcn wird natürlich nur ausgeführt, wenn sich etwas ändert. Wenn gleich zu Beginn etwas ausgeführt werden soll, gehört das in die OpeningFcn.
Private Nachricht senden Benutzer-Profile anzeigen
 
CuteyHoney

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2010, 18:41     Titel:
  Antworten mit Zitat      
ich habe ein ähnliches problem
bei mir wird leider nicht die position des radiobutton(also der aktive) geladen Sad

mein bisheriges vorgehen ist in die SelectionChangeFcn folgendes zu deklarieren:
k=get(handles.radiobutton1,'Value');
g=get(handles.radiobutton2,'Value');

sodass die variablen jeweils mit 0 und 1 belegt werden.

im speicherteil werden die variablen auch mit den richtigen werten gespeichert, jedoch klappt das laden nicht
ich versuche es mit den befehlen

set(handles.radiobutton1,'Value',k);
set(handles.radiobutton2,'Value',g);

aber irgendwie ändert er nicht die aktivität der buttons sondern es ist immer nur der aktiv, welcher zuletzt gewählt wurde

irgendjemand eine idee?
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.01.2011, 16:02     Titel:
  Antworten mit Zitat      
Habe das bei mir folgendermaßen stehen:

Code:

G.bg = uibuttongroup( ... );
G.rd(1) = uicontrol(G.bg, 'style', 'radiobutton', 'parent', G.bg);
G.rd(2) = uicontrol(G.bg, 'style', 'radiobutton', 'parent', G.bg);
set(G.bg,'SelectionChangeFcn',@selcb);

function selcb(source,eventdata)
  if get(G.rd(1),'value') == 1
     ...
  end
end
 


Bin mir unsicher ob das mit dem parent nötig ist. Hoffe ich konnte helfen.

Gruß
Felix
 
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 - 2025 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.