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

häkchen entfernen

 

lila

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2008, 10:41     Titel: häkchen entfernen
  Antworten mit Zitat      
hallo, ich glaube mein problem ist recht einfach, aber ich komm selber nicht drauf wie ich es lösen könnte. wenn ich bei meiner gui den startbutton drücke möchte ich dass die häkchen in allen vorher markierten checkboxes wieder verschwinden. wie kann ich denn außerhalb einer callbackfunktion auf hObject einer bestimmten Checkbox zugreifen? danke schon mal. tuli


Martin
Admin

Admin



Beiträge: 651
Anmeldedatum: 16.06.07
Wohnort: Bietigheim-Bissingen
Version: ---
     Beitrag Verfasst am: 15.05.2008, 10:52     Titel:
  Antworten mit Zitat      
Hallo tuli,

habe gearde kein Matlab zur Hand, aber du musst einfach in den Callback des Buttons folgendes einbauen:
Code:
set(handles.checkbox,'Value',0);


(Angaben aus dem Kopf ohne Gewähr)

Gruß Martin
_________________

Der kleine goMatlab.de-Knigge - Eine kleine Liste von wichtigen Regeln, die jeder beachten sollte
Private Nachricht senden Benutzer-Profile anzeigen
 
tuli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2008, 10:57     Titel:
  Antworten mit Zitat      
danke. aber geht das auch noch außerhalb des callbacks dieser checkbox? dazu brauch ich doch noch den tag-namen oder? ich habe nämlich 26 pushbuttons und diese alle einzeln zurückzusetzen ist doch aufwendig. kann ich das vielleicht mit einer schleife lösen, wenn ich zb tags checkbox1 bis checkbox26 vergebe?
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.05.2008, 11:47     Titel:
  Antworten mit Zitat      
Hallo,
wenn du alle checkboxen in deiner figure suchen möchtest, dann kannst du das auch über Befehl findall erreichen.

In Callback denke ich doch, dass du alle handles hast, oder?
myPushbuttonCallback(hObject,eventdata, handles),
dann suche dir in handles-Struct den Tag-Name von deinem Figure (handles.myFigure).

Und weiter nach Beispiel vorgehen:
Code:

% figure mit checkboxen
h=figure
uicontrol(h,'Style','checkbox','String','checkbox1','Position',[20 320 100 20],'Value',1)
uicontrol(h,'Style','checkbox','String','checkbox2','Position',[20 280 100 20],'Value',1)
uicontrol(h,'Style','checkbox','String','checkbox3','Position',[20 240 100 20],'Value',1)

% suche alle checkboxen in figure
% h kannst durch dein figure handle ersetzen
allChkBox = findall(h,'Style','checkbox');
set (allChkBox,'Value',0);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
tuli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2008, 13:00     Titel:
  Antworten mit Zitat      
ah das ist ja super. kann ich das auch nur von einem panel machen, weil es gibt noch andere checkboxen, die ich nicht zurücksetzen will. mir allchild(panel_tag) gehts irgendwie nicht...
 
tuli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2008, 13:18     Titel:
  Antworten mit Zitat      
aber selbst wenn ich es so mache, geht es nicht, das program läuft zwar durch ohne fehlermeldung, aber die häkchen bleiben trotzdem da... hab ich da irgendwo den falschen handle angegeben?

Code:
function varargout = versuchsgui(varargin)
% VERSUCHSGUI M-file for versuchsgui.fig
%      VERSUCHSGUI, by itself, creates a new VERSUCHSGUI or raises the existing
%      singleton*.
%
%      H = VERSUCHSGUI returns the handle to a new VERSUCHSGUI or the handle to
%      the existing singleton*.
%
%      VERSUCHSGUI('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in VERSUCHSGUI.M with the given input arguments.
%
%      VERSUCHSGUI('Property','Value',...) creates a new VERSUCHSGUI or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before versuchsgui_OpeningFunction gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to versuchsgui_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help versuchsgui

% Last Modified by GUIDE v2.5 15-May-2008 10:49:56

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @versuchsgui_OpeningFcn, ...
                   'gui_OutputFcn',  @versuchsgui_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before versuchsgui is made visible.
function versuchsgui_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to versuchsgui (see VARARGIN)

% Choose default command line output for versuchsgui
handles.output = hObject;
handles.checkbox=zeros(1,3);
% Update handles structure
guidata(hObject, handles);

% UIWAIT makes versuchsgui wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = versuchsgui_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;

% --- Executes on button press in checkbox1.
function checkbox1_Callback(hObject, eventdata, handles)
% hObject    handle to checkbox1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
  if (get(hObject,'Value') == get(hObject,'Max'))
        handles.checkbox(1)=1;
    else
        handles.checkbox(1)=0;
    end

guidata(hObject, handles);



% --- Executes on button press in checkbox2.
function checkbox2_Callback(hObject, eventdata, handles)
% hObject    handle to checkbox2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
  if (get(hObject,'Value') == get(hObject,'Max'))
        handles.checkbox(2)=1;
    else
        handles.checkbox(2)=0;
    end

guidata(hObject, handles);



% --- Executes on button press in checkbox3.
function checkbox3_Callback(hObject, eventdata, handles)
% hObject    handle to checkbox3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
  if (get(hObject,'Value') == get(hObject,'Max'))
        handles.checkbox(3)=1;
    else
        handles.checkbox(3)=0;
    end

guidata(hObject, handles);



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

allChkBox = findall(handles,'Style','checkbox');
set (allChkBox,'Value',0);
guidata(hObject, handles);
save temp
 
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.05.2008, 16:01     Titel:
  Antworten mit Zitat      
Na ja, hab wohl nicht verständlich erklärt.
Neues Versuch:
Variable handles ist ein Struct.
Das heißt wenn du z.B einfach handles ohne Strichpunkt in deiner Callback-Funktion schreibst.

Code:

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

handles
 

Bekommst eine ganze liste mit Feldern von handles.
Du musst als Feld den Tag-Namen von deinem Figure eingeben. Also in deneim Fall wohl versuchsgui. Ich hoffe du siehst in der Ausgabe
Code:

function start_Callback(hObject, eventdata, handles)
% hObject    handle to start (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
allChkBox = findall(handles.versuchsgui,'Style','checkbox');
set (allChkBox,'Value',0);
guidata(hObject, handles);
save temp
 


Du kannst natürlich statt GUI-Handle auch Panel-Handle nutzen bei findall.

Zuletzt bearbeitet von denny am 15.05.2008, 16:04, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
tuli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2008, 16:01     Titel:
  Antworten mit Zitat      
also ich hab jetzt ziemlich viel rumprobiert, aber in die Variable allChkBox wird einfach nie was reingeschrieben....
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.05.2008, 16:06     Titel:
  Antworten mit Zitat      
Hast du schon auch ausprobiert, dass ich einen Beitrag höher beschrieben habe?
Private Nachricht senden Benutzer-Profile anzeigen
 
tuli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.05.2008, 12:54     Titel:
  Antworten mit Zitat      
ja hab ich versucht, geht leider auch nicht, ich bekomme entweder eine fehlermeldung, dass es den tagnamen nicht gibt, oder wenn ich hOject nehme bleibt allChkBox einfach leer. ich habe jetzt alle einzeln zurückgesetzt. ist zwar nicht so schön, aber funktioniert;-)

danke nochmal.
 
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.