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

OpeningFcn wo implementieren?

 

Timmmo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.11.2010, 15:35     Titel: OpeningFcn wo implementieren?
  Antworten mit Zitat      
Hallo Zusammen,

hab ein GUI gebaut ohne GUIDE und würde nun gerne eine OpeningFcn einfügen, die mit ein paar Grafiken und string-Einträge gleich zum Start berechnet. Mein GUI sieht etwas verkürzt ungefair so aus:
Code:

classdef Untitled < handle
%properties---------------------------------------------------
    properties
        Test_1_h = 0;
        Panel1_h = 0;
    end
   
%methods-------------------------------------------------------------------      
methods
      function b = Untitled
            b.Test_1_h = figure('units', 'pixels',...
                'color', [0.7, 0.7, 0.7],...
                'name','name',...
                'menubar','none','numberTitle','off',...
                'position',[300 150 1280 800],...
                'resize','off');
            b.Panel1_h = uipanel('Parent',b.Test_1_h,...
                'Title','Schritt 2',...
                'units', 'pixels',...
                'backgroundcolor', [0.7, 0.7, 0.7],...
                'Position',[15 630 1250 70]);
      end
end
end


an welcher Stelle im Code muss ich nun die OpeningFcn einfügen? Vielleicht hat jemand von euch eine Idee...

Vielen Dank für eure Hilfe
LG Timo


Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 26.11.2010, 16:29     Titel:
  Antworten mit Zitat      
Hallo Timo,

also soweit ich weiß wird die OpeningFcn von GUIDE erstellt und ist kein Callback wie z.B. die closerequestfcn einer figure (Schau mal im GUIDE Inspector nach den Properies der figure). Dementsprechend musst du die selber erstellen oder z.B. alle Berechnungen im Constructor deiner handle Klasse durchführen und dann die passenden Grafikobjekte erstellen und setzen...

Ich meine du kannst natürlich auch noch eine Methode für die Berechnungen schreiben und eine für das setzten aller grafischen Objekte in deiner GUI. da gibs zig Möglichkeiten...

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
Timmmo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2010, 19:34     Titel:
  Antworten mit Zitat      
Hallo Marco,

danke für deine Antwort... leider schaff ichs grad nicht Entsprechendes umzusetzen... werds weiter versuchen, für ein wenig code wäre ich natürlich sehr dankbar.

Danke LG Timo
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 30.11.2010, 23:18     Titel:
  Antworten mit Zitat      
Da ich nicht genau weiß was du mit deiner Gui machen willst und auch nicht weiß warum du diese nicht einfach mit GUIDE erstellst habe ich dir ein simples Beispiel erstellt...

Code:

classdef Test < handle
%properties---------------------------------------------------
    properties
        Test_1_h
        Panel1_h
        array
        plotdata
        axes_h
        Typ
        pushb
    end
   
    %methods-------------------------------------------------------------------
    methods
        function b = Test % constructor
            b.Test_1_h = figure('units', 'pixels',...
                'color', [0.7, 0.7, 0.7],...
                'name','name',...
                'menubar','none','numberTitle','off',...
                'position',[300 150 1280 800],...
                'resize','off','Visible','off','closerequestfcn',{@ende,b});
            b.Panel1_h = uipanel('Parent',b.Test_1_h,...
                'Title','Schritt 2',...
                'units', 'pixels',...
                'backgroundcolor', [0.7, 0.7, 0.7],...
                'Position',[15 630 1250 70]);
            b.array = -pi:pi/10:pi;
            b.plotdata = sin(b.array);
            b.axes_h = axes('Parent',b.Test_1_h,'units','pixel','Position',[50 50 1000 300]);
           
            plot(b.array,b.plotdata,'--rs','LineWidth',2,...
                'MarkerEdgeColor','k',...
                'MarkerFaceColor','g',...
                'MarkerSize',10);
           
            b.pushb = uicontrol('Parent',b.Panel1_h,'Style','PushButton','Units','pixel',...
                'String','Nächste Berechnung Cos','Position',[10 10 250 25],'callback',{@Aendern,b});
            b.Typ = 1;
           
            set(b.Test_1_h,'visible','on')
        end
    end
end


%% Hilfsfunktionen
function Aendern(hobj,evd,varargin)
b = varargin{1};
switch b.Typ
    case 1
        b.plotdata = cos(b.array);
        b.Typ = 2;
        set(hobj,'String','Nächste Berechnung Tan')
    case 2
        b.plotdata = tan(b.array);
        b.Typ = 3;
        set(hobj,'String','Nächste Berechnung Sin')
    otherwise
        b.plotdata = sin(b.array);
        b.Typ = 1;
        set(hobj,'String','Nächste Berechnung Cos')
end
plot(b.array,b.plotdata,'--rs','LineWidth',2,...
                'MarkerEdgeColor','k',...
                'MarkerFaceColor','g',...
                'MarkerSize',10);
end

function ende(hobj,evd,varargin)
delete(hobj)
delete(varargin{1})
end
 


ich hoffe, dass es dir hilft

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
Timmmo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2010, 16:23     Titel:
  Antworten mit Zitat      
Hallo Marco,

danke für deine Zeilen, werds gleich mal versuchen umzusetzen!

LG Timo
 
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.