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

4 Checkboxen erstellen

 

steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 17.06.2009, 20:25     Titel:
  Antworten mit Zitat      
Das ist dann natürlich blöd.

Mein Code sollte funktionieren, wenn du wieder die Variablenbezeichnung nimmst wie im ersten Post, so dass du dann eine Struktur "hh" hast, die alle handles enthält...

Gruß
Alex
_________________

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


ToZi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2009, 14:54     Titel:
  Antworten mit Zitat      
%das Fenster heisst :

% Testbericht = figure(.....
Code:

btn_go = uicontrol(...
    'Style','pushbutton',...
    'String','START',...
    'Units','pixels',...
    'Position',[280 30 75 30],...
    'Parent',grp,...
    'Callback',@GoButtonCallback);

    function GoButtonCallback(hObject, eventdata)      
    FiF = get(findobj('Style','checkbox','String','FiF'),'Value');    
    MiM = get(findobj('Style','checkbox','String','MiM'),'Value');  
    FiB = get(findobj('Style','checkbox','String','FiB'),'Value');  
    MiB = get(findobj('Style','checkbox','String','MiB'),'Value');  
   

        testreport(FiF, MiM, FiB, MiB);
   
close(Testbericht);
 


ich habe es jetzt so gemacht so funktioniert es ja.
Jetzt hätte ich noch gerne das das Fenster mit den checkboxen nach dem der Start-button gedrückt worden ist sofort geschlossen wird.(Am Besten vor dem testreport() Aufruf, da die bearbeitung eine Zeit dauert)
ich habs mal so wie oben im Codeausschnitt probiert aber funktioniert nicht. Da kommt dann folgende Meldung :

Code:

??? Undefined function or variable 'Testbericht'.

Error in ==> faceRecognition>GoButtonCallback at 1535
close(Testbericht);
 
??? Error while evaluating uicontrol Callback
 
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 18.06.2009, 15:30     Titel:
  Antworten mit Zitat      
Moin,

das ist das gleiche Problem wie oben (du hast die handles nicht übergeben). Wenn du kein anderes Fenster öffnest, dann könnte das klappen:
Code:
btn_go = uicontrol(...
    'Style','pushbutton',...
    'String','START',...
    'Units','pixels',...
    'Position',[280 30 75 30],...
    'Parent',grp,...
    'Callback',@GoButtonCallback);

    function GoButtonCallback(hObject, eventdata)      
    FiF = get(findobj('Style','checkbox','String','FiF'),'Value');    
    MiM = get(findobj('Style','checkbox','String','MiM'),'Value');  
    FiB = get(findobj('Style','checkbox','String','FiB'),'Value');  
    MiB = get(findobj('Style','checkbox','String','MiB'),'Value');  
    close(gcf);
    testreport(FiF, MiM, FiB, MiB);


Gruß
Alex
_________________

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2009, 16:32     Titel:
  Antworten mit Zitat      
Funktioniert leider auch nicht kommt folgende Fehlermeldung :

Code:

??? Error using ==> figure
Single input must be an existing figure handle or a scalar integer from 1 to
2147483646
 
??? Error while evaluating uicontrol Callback
 


Wie übergebe ich den dann am Besten die Handles ?
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 18.06.2009, 16:45     Titel:
  Antworten mit Zitat      
Poste mal bitte den kompletten Code oder das bzw. die m-files die du gerade verwendest. Gerne auch gekürzt, wenn sensible Daten drinstehen...

Gruß
Alex
_________________

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2009, 17:39     Titel:
  Antworten mit Zitat      
Mit dem folgenden Button wird die funktion test() aufgerufen.
Code:

h.main.btn_test = uicontrol(...
    'Style','pushbutton',...
    'String','Testlauf',...
    'Units','normalized',...
    'Position',[.05 .15 .90 .07],...
    'Parent',h.main.grp,...
    'FontSize',FontSize,...
    'Callback','fR(''test'');');
 


Die Funtion test() ist die mit den 4 checkboxen :
Code:

function test( )

text = 'Was soll verglichen werden ?';

Testbericht = figure('MenuBar','none',...
                     'Name','Testberichte erstellen',...
                     'NumberTitle','off',...
                     'Toolbar','none',...
                     'Visible','on',...
                     'Units','normalized',...
                     'Position',[.30 .35 .30 .30]);        
grp = uipanel(...
    'Parent',Testbericht,...
    'Units','normalized');
header = uicontrol(...
    'Style','text',...
    'Units','pixels',...
    'Position',[5 250 375 30],...
    'parent',grp,...
    'String',sprintf('%s',text),...
    'HorizontalAlignment','center',...
    'FontSize',14,...
    'BackgroundColor',[1 1 1]);
btn_ck1 = uicontrol(...
    'Style','checkbox',...
    'String','FiF',...
    'Units','pixels',...
    'Position',[20 190 250 20],...
    'Parent',grp,...
    'Value',1);
btn_ck2 = uicontrol(...
    'Style','checkbox',...
    'String','MiM',...
    'Units','pixels',...
    'Position',[20 165 250 20],...
    'Parent',grp,...
    'Value',1);
btn_ck3 = uicontrol(...
    'Style','checkbox',...
    'String','FiB',...
    'Units','pixels',...
    'Position',[20 120 250 20],...
    'Parent',grp);
btn_ck4 = uicontrol(...
    'Style','checkbox',...
    'String','MiB',...
    'Units','pixels',...
    'Position',[20 95 250 20],...
    'Parent',grp);
btn_go = uicontrol(...
    'Style','pushbutton',...
    'String','START',...
    'Units','pixels',...
    'Position',[280 30 75 30],...
    'Parent',grp,...
    'Callback',@GoButtonCallback);

    function GoButtonCallback(hObject, eventdata)      
    FiF = get(findobj('Style','checkbox','String','Frauen mit Frauen vergleichen'),'Value');    
    MiM = get(findobj('Style','checkbox','String','Männer mit Männer vergleichen'),'Value');  
    FiB = get(findobj('Style','checkbox','String','Frauen mit beiden Geschlechter vergleichen'),'Value');  
    MiB = get(findobj('Style','checkbox','String','Männer mit beiden Geschlechter vergleichen'),'Value');  
   

%         close(gcf);
        testreport(FiF, MiM, FiB, MiB);
 


Vorher hatte ich direkt mit dem Testlauf Button die Funktion testreport(...) aufegrufen, hat auch gut funktioniert. Allerdings dauert der Funktionslauf sehr lange und man braucht nicht immer alles darum, würde ich eben gerne ein Fenster (Testbericht) aufmachen mit den man einstellen kann was man den gerne haben möchte.

Hilft das ?
 
ToZi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2009, 17:42     Titel:
  Antworten mit Zitat      
jetzt habe ich tatsächlich vergessen unten den Text zu ändern Smile

Es geht dabei um Gesichtserkennung.
Deswegen Frauen mit Frauen vergleichen etc.

Also der String der Buttons ist dann schon gleich
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 18.06.2009, 17:56     Titel:
  Antworten mit Zitat      
Hmm, also dann sollte ein
Code:
close(Testbericht);
eigentlich das machen was es soll, nämlich die figure schließen.

Ansonsten könntest du noch versuchen:
Code:
btn_go = uicontrol(...
    'Style','pushbutton',...
    'String','START',...
    'Units','pixels',...
    'Position',[280 30 75 30],...
    'Parent',grp,...
    'Callback',{@GoButtonCallback,Testbericht});

    function GoButtonCallback(hObject, eventdata,Testbericht)
    ...
    close(Testbericht);


Gruß
Alex
_________________

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2009, 18:10     Titel:
  Antworten mit Zitat      
Wenn ich es so mache :
Code:

btn_go = uicontrol(...
    'Style','pushbutton',...
    'String','START',...
    'Units','pixels',...
    'Position',[280 30 75 30],...
    'Parent',grp,...
    'Callback',{@GoButtonCallback, Testbericht});

    function GoButtonCallback(hObject, eventdata, Testbericht)
         close(Testbericht);
    FiF = get(findobj('Style','checkbox','String','FiF'),'Value');    
    MiM = get(findobj('Style','checkbox','String','MiM'),'Value');  
    FiB = get(findobj('Style','checkbox','String','FiB'),'Value');  
    MiB = get(findobj('Style','checkbox','String','MiB'),'Value');  
   

       close(Testbericht);
        testreport(FiF, MiM, FiB, MiB);
 

dann geht das Fenster zwar zu, aber erst nach dem der testreport erstellt worden ist, hätte gern das es zu geht bevor der Funktionsaufruf gemacht wird so habe ich es ja auch imm Code geschrieben aber trotzdem geht es erst danach zu Sad
 
ToZi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2009, 18:11     Titel:
  Antworten mit Zitat      
man heute ist eindeutig zu heiss...
das erste close gehört natürlich raus.

Aber an der Stelle habe ich es auch schon getestet ist dann genau das gleiche.
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 18.06.2009, 20:00     Titel:
  Antworten mit Zitat      
Dann hau einfach mal ein
Code:
hinter den close Befehl.

Gruß
Alex
_________________

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2009, 10:47     Titel:
  Antworten mit Zitat      
Morgen,

also das mit pause(0) funktioniert nicht aber drawnow haut hin.
Danke !!!

Jetzt ist es fast so wie ich es haben möchte *fg*
ich traue mich ja gar nicht mehr fragen, was ich noch gerne hätte.

Momentan ist es ja so wenn ich auf einen Button "Testlauf" drücke wird ein Fenster (das mit den 4 Checkboxen) geöffnet mit dessen hilfe ich einstellen kann welcher(e) Testberichte erstellt werden. Drücke ich in diesem Fenster auf Start (verschwindet es sofort! Smile ) wird die funktion testreport() aufgerufen und diese schreibt eben die oder den Testreport in eine Excel-Datei. Wenn die Funktion fertig ist öffnet sich ein Fenster in dem steht er ist fertig ^^

Code:

 Frage = sprintf('Die Daten wurden in eine Excel-Datei geschrieben !!\n\n');
 button =  questdlg(Frage,'Daten wurden exportiert','OK','Beenden','OK');
 


Dafür habe ich questdlg "vergewaltigt" , da es ja eigentlich keine Frage ist, gibt es da was besseres ? das ?-Symbol stört da etwas...
Aber das ist nicht so schlimm. Was ich gerne hätte wäre jetzt das zwischen dem drücken des Start-Buttons und des erscheinens des questdlg sich wieder ein anderes Fenster öffnet indem sowas steht wie :"Bitte warten" das sich dann aber wieder automatisch schliesst wenn er fertig mit der Erstellung des/der Testreport(e) ist.
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 19.06.2009, 11:08     Titel:
  Antworten mit Zitat      
Moin,

nimm statt "QUESTDLG" "HELPDLG" Wink

Zu der anderen Sache:
Wie wird denn der Testreport erstellt? Wenn es eine for-Schleife ist, dann guck mal in die Skripte-Ecke, dort gibt es eine waitbar-Anleitung - damit kannst du dir dann sogar ausgeben lassen, wie lange es noch in etwa dauern wird Wink

Gruß
Alex
_________________

>> 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
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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.