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

GUI Toolbar Toggle-Button Menu

 

Golom
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.12.2011, 15:57     Titel: GUI Toolbar Toggle-Button Menu
  Antworten mit Zitat      
Servus,

ich habe mehrere Optionen die ich sowohl über meine Menuleiste aktivieren will als auch über einen Togglebutton in der Toolbar (Selbst in GUIDE erstellt) anschalten beziehungsweise deaktivieren will.

Zum Beispiel Auswahl "Modell1" (on/off)

Einzeln funktionieren es einwandfrei allerdings kann ich über den Menu_Modell1_Callback den uitoggletool-Button nicht steuern. Also ich meine dass der Toogle Button dann visuel gedrückt erscheint oder eben nicht.

Ich hab auch schon mit nem handle.Mod1=get(gcbo) ... guidata(hObject, handles) versucht dass in die Callback Funktion zu transferieren und über 'State! on und off zu schalten aber das funktioniert nicht. (Umgekehrt kann ich den Menueintrag über ein gespeichertes handle ansprechen)

Jemand eine Idee wie man einen Toggletoolbutten aus einer anderen Funktion heraus drücken kann? (visuell reicht aus)
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 13.12.2011, 16:28     Titel:
  Antworten mit Zitat      
Moin,

du müsstest den Toggle Button mit Hilfe von FINDOBJ innerhalb der Menü-Callback finden und dann auch ansprechen können:
Code:

% Callback des Menu Eintrags
set(findobj('Tag','myToggle'),'State','on');
 


Gruß
Alex

/edit: Toggle Button Property von "Value" auf "State" verbessert
_________________

>> 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?

Zuletzt bearbeitet von steve am 13.12.2011, 18:16, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Golom
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.12.2011, 17:05     Titel:
  Antworten mit Zitat      
Vielen Dank!

Hab jetzt den halben Tag alles mögliche reingehackt. Nur zur Info beim Togglebutton gibts kein 'Value' sondern da heißts 'State'

Wen es interessiert, so funktioniert die Verknüpfung:

Code:
function Menu_Models_M1_Callback(hObject, eventdata, handles)
if strcmp(get(gcbo, 'Checked'),'on')
            set(gcbo, 'Checked', 'off');
            set(findobj('Tag','uitoggletool_M1'),'State','off');
        else
            set(gcbo, 'Checked', 'on');
            set(findobj('Tag','uitoggletool_M1'),'State','on');
end
% --------------------------------------------------------------------
function uitoggletool_M1_OnCallback(hObject, eventdata, handles)
set(handles.Menu_Models_M1,'Checked', 'on');
% --------------------------------------------------------------------
function uitoggletool_M1_OffCallback(hObject, eventdata, handles)
set(handles.Menu_Models_M1,'Checked', 'off');
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 13.12.2011, 18:21     Titel:
  Antworten mit Zitat      
Moin,

kleiner Tipp zum Optimieren des Codes:
Verwende SWITCH statt IF, wenn dir die Zustände von vornherein bekannt sind:
Code:
function Menu_Models_M1_Callback(hObject, eventdata, handles)
switch get(gcbo, 'Checked')
    case 'on'
        set(gcbo, 'Checked', 'off');
        set(findobj('Tag','uitoggletool_M1'),'State','off');
    case 'off'
        set(gcbo, 'Checked', 'on');
        set(findobj('Tag','uitoggletool_M1'),'State','on');
    % otherwise
        % hier könnte eine Fehler-/Warnmeldung rein, falls mal was schief geht...
end
% --------------------------------------------------------------------
function uitoggletool_M1_OnCallback(hObject, eventdata, handles)
set(handles.Menu_Models_M1,'Checked', 'on');
% --------------------------------------------------------------------
function uitoggletool_M1_OffCallback(hObject, eventdata, handles)

_________________

>> 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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Golom
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2011, 08:43     Titel:
  Antworten mit Zitat      
Normal nutz ich switch, die gcbo Abfrage war halt copy paste ...
Private Nachricht senden Benutzer-Profile anzeigen
 
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.