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: Checkbox beim jedem Öffnen "reseten"

 

timmwerner
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 13.03.12
Wohnort: ---
Version: 2011a/2010a
     Beitrag Verfasst am: 17.12.2013, 01:43     Titel: GUI: Checkbox beim jedem Öffnen "reseten"
  Antworten mit Zitat      
Hi,

habe ein Problem mit meinen Checkboxen in der GUI. Hoffentlich könnt ihr mir helfen

Problem:

Wenn ich nach einem Durchlauf die GUI schließe und dann später wieder öffne, dann ist zwar der Haken entfernt, jedoch wird 1 übergeben (wenn das im vorherigen Durchlauf der Fall war). Also merkt sich die Checkbox quasi die letzte Einstellung.

Nun möchte ich, dass bei jedem Öffnen der GUI die Checkboxen standardmäßig auf 0 gesetzt werden.


Fragen:

Welchen Befehl muss ich verwenden?
Wo muss dieser eigefügt werden? OpeningFcn oder in der checkbox Funktion?


Anmerkung:

Ich arbeite mit dem GUIDE.


Vielen dank schon mal und besten Gruß!
Timm
Private Nachricht senden Benutzer-Profile anzeigen


Bubanst88

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2013, 09:14     Titel:
  Antworten mit Zitat      
Hallo,
speicherst du den wert der checkbox in der checkbox_callbackfunktion in eine andere Variable? oder rufst du ihn jedes mal mit
Code:
get(handles.checkbox)
ab? falls du letzteres machst solle ein
Code:
set(handles.checkbox,'Value',0)  
reichen.
VG
 
timmwerner
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 13.03.12
Wohnort: ---
Version: 2011a/2010a
     Beitrag Verfasst am: 17.12.2013, 14:59     Titel:
  Antworten mit Zitat      
Momentan mache ich es noch über

Code:
% --- Executes on button press in aktiv_SOC_max_opt.
function aktiv_SOC_max_opt_Callback(hObject, eventdata, handles)
% hObject    handle to aktiv_SOC_max_opt (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 aktiv_SOC_max_opt

global aktiv_SOC_max_opt

if (get(hObject,'Value') == get(hObject,'Max'))
   % Checkbox is checked-take appropriate action
   aktiv_SOC_max_opt = 1;
   
else
   % Checkbox is not checked-take appropriate action
   aktiv_SOC_max_opt = 0;
   
end
 



Habe deine Lösung ausprobiert, jedoch funktioniert es leider nicht. Komischerweise funktioniert es wenn ich value auf 1 setze. Möchte aber eigentlich, dass die box unchecked ist und nicht checked!

Gibts noch eine Möglichkeit?
Private Nachricht senden Benutzer-Profile anzeigen
 
Bubanst88

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2013, 15:43     Titel:
  Antworten mit Zitat      
super damit kann ich gut arbeiten ...
ok dann ist das Problem das du die Variable global definierst, dass heißt, sie bleib so lange Matlab offen ist (unabhängig vom GUI), gespeichert. Du könntest in deiner open_fnk mit
Code:

try; aktiv_SOC_max_opt = 0; end % falls Variable vorhanden, auf null setzen falls variable nicht vorhanden Zeile überspringen Wink
 

zurücksetzen oder einfach mit
Code:

clear aktiv_SOC_max_opt
 

löschen ... da sie sowieso bei jedem aufruf des callback_fnk erstellt werden sollte Wink
 
timmwerner
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 13.03.12
Wohnort: ---
Version: 2011a/2010a
     Beitrag Verfasst am: 20.12.2013, 13:51     Titel:
  Antworten mit Zitat      
Hi,

tut mir leid, dass meine Rückmeldung mit etwas Verzögerung kommt. Vielen Dank schon mal für deine Mühe, aber leider funktioniert es noch nicht ....

Ich lösche halt meist den gesamten Workspace bevor ich einen neuen Durchlauf mache. Trotzdem merkt sich die GUI wohl die letzten Einstellungen bzgl. der Checkboxes und behält zuvor aktivierte Checkboxes auf 1, obwohl die in der GUI kein Haken zu erkennen ist. Wenn ich einmal den Haken setze und danach entferne, dann gehts auch, aber das ist ja umständlich ...

Hast du / habt ihr noch eine weitere Idee?

Vielen Dank und besten Gruß,
Timm
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.12.2013, 00:18     Titel:
  Antworten mit Zitat      
Hallo timmwerner,

Zitat:
Ich lösche halt meist den gesamten Workspace bevor ich einen neuen Durchlauf mache.

Das klingt nach einer instabilen Strategie.
Solche Probleme kann man sich sparen, wenn man globnale Variablen strickt vermeidet. Stattdessen kann man die Parameter per SETAPPDATA/GETAPPDATA oder GUIDATA lokal in der FIGURE speichern.

Gruß, Jan
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 - 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.