2016-08-09 28 views
0

Ich lerne gerade MATLAB GUIDE GUI-Programmierung. Ich stelle fest, dass wenn ich einige Objekte in einer Figur platziere, eine entsprechende 'CreateFcn'-Callback-Funktion in der zugehörigen .m-Datei erstellt wird. MATLABs Kommentare geben an, dass diese Funktion ausgeführt wird, wenn das Objekt erstellt wird (ich würde dies als Konstruktor für das Objekt betrachten).MATLAB GUI - Wie entferne ich den CreateFcn Callback in meinem Code?

Allerdings habe ich festgestellt, dass nicht alle Objekte diesen CreateFcn Konstruktor haben. Statische Textobjekte scheinen diese Callback-Funktion nicht zu haben. Und derzeit scheint es, als ob diese Funktion den Code nur noch schwerer lesbar macht. Also bin ich gespannt ob ich das löschen kann.

Indem ich es lösche, tendiere ich dazu, einen Fehler in meinem Code zu bekommen, der besagt, dass die Funktion nicht gefunden werden kann. Also meine Frage: Ist es möglich, die 'CreateFcn' Methode zu löschen, um meinen Code zu entschlüsseln?

Danke,

Antwort

2

Sicher ist es möglich.

Doppelklicken Sie auf das Objekt, um das Inspektorfenster zu öffnen, suchen Sie die Eigenschaft "CreateFcn" und legen Sie den Wert auf eine leere Zeichenfolge fest. Dann gehe zur .m-Datei und entferne den Code von CreateFcn. Auf diese Weise würde sich MATLAB nicht mehr über den fehlenden CreateFcn beschweren.

CreateFcn ist nicht wirklich ein Konstruktor per se, da es passiert, nachdem alle Eigenschaften des Objekts bereits festgelegt sind. Es ist eher ein optionales Post-Konstruktor-Ereignis, das dem Benutzer die Möglichkeit gibt, das anfängliche Verhalten des Objekts dynamisch weiter anzupassen. Sie können beispielsweise die Farbe des Objekts bei der Erstellung abhängig von der Hintergrundfarbe anpassen, in der das Objekt angezeigt wird. Für die meisten Steuerungsobjekte ist das Standardverhalten wahrscheinlich bereits gut genug für Sie. So können Sie diese CreateFcns sicher entfernen, bis Sie eine gute Ausrede gefunden haben, eine zu verwenden.