Swedish flagChinese (Simplified) flagEnglish flagGerman flagFrench flagSpanish flagHindi flag
Juni
28
2009
2

Matlab Gui mit guihandles

Ich habe mit einem Computerprogramm in Matlab gearbeitet. Die Idee dahinter ist, dass es sein muss benutzerfreundlich und effizient auf gemeinsame Berechnungen für einige Arten von Einrichtungen zu tun. In diesem Programm habe ich eine Menge von Widgets, die verwendet uipanel, uitree und uicontrol.

Viele Autoren von Tutorials für Matlab GUI empfehlen die Verwendung von Matlab eingebauten Funktion (oder vielleicht sollte ich nenne es eine Toolbox (?)) Called Guide. Typ:

Anleitung >>

Im Befehlsfenster, und es öffnet sich ein Fenster, wo Sie zu finden und konfigurieren können die Komponenten einer Figur. Dies hat Vorteile für Single-Speed-Anwendungen. Doch das große Problem, wenn Sie wollen, legale Software zu schreiben. Das ist, weil es schwierig, den Überblick über Ihre grafische Objekte zu halten ist. Sie sind in der exportierten Figur endet in Zahlen nicht enthalten

Platzieren Sie Ihre Komponenten selbst

Ich habe mein Programm ohne den Führer geschrieben. Es ist leicht zu erstellen und bereitstellen Komponenten. Wie Sie unten sehen können, erfordert ein wenig Befehl eine Menge Codierung. Stellen Sie sich vor, wie bullige Codes für Spiele wie Poker und andere Anwendungen, wo es eine Vielfalt von Aktivitäten. Aber zurück zum Schreiben von Programmen ohne den Führer. Dies geschieht, indem die Fenstergriffe in der Figur und der Position des Fensters angelegt werden getan. Natürlich konfiguriert andere Parameter wie Farbe oder Rückruf, genau wie in der Führung. Ich habe meine Programme wie Matlab Objekte geschrieben und verwendet die Strategie, Komponenten der Konstruktor durch Aufruf einer Funktion auslagern Lieferung, vorläufig namens init-GUI. Ich spare mein Objekt intern in der Klasse in einer Struktur, die halten etwaiger Hebel an den Komponenten hat. Diese Struktur I zu initiieren, wenn ich aus legen die Komponenten.

  classdef aClassName <Griff
    Eigenschaften
       handleToGui;
    Ende
    Methoden
       Funktion obj = aClassName (varargin)
          ...
          obj.initGui ();
          ...
       Ende
       ...
       Abbildung Funktion = initGUI (Obj)
          = Obj.handleToGui.fig Figur (...);
          Obj.handleToGui.otherComponentName = ...
          ...
       Ende
    Ende
 % Ende classdef 

Matlab-Funktion guihandles

Matlab hat eine Funktion namens guihandles. Es ist ziemlich einfach in vielerlei Hinsicht, und ich werde erklären, warum. Der Grund ist, dass Sie sich keine Gedanken über das Hinzufügen Ihrer Komponenten direkt in eine Struktur, wenn Sie sie aus, weil guihandles (Elternteil), stellt eine Struktur von Griffen für alle Kinder (Kinder), die in der Abbildung sind Sorgen. Mit der Forderung nach diesem können Sie initiieren handleToGui nachdem alle Komponenten angelegt. Dies wird dann zu einer Struktur mit Feld ames angesichts der Tag-Namen (Tag) Komponenten gegeben worden.

Probleme mit den Matlab-Funktion guihandles

Allerdings besteht die Gefahr, dass mit diesem Ich denke Matlab hat nicht gedacht. Alternativ ist es so, dass ich und andere haben das alles zu leichtfertig verwendet. Tatsache ist, dass die GUI-Griffe Griffe für alle Widgets in der Abbildung geben. Wenn Sie verschiedene Klassen für die verschiedenen Teile der Anwendung, wie z. B. eine separate Klasse, die eine bestimmte Art von plottyta Griffe in einem Teil des Programms und eine andere Klasse, die einen ähnlichen Vorgang in einem anderen Ort, den sie sich gegenseitig vernichten kann, wenn beide verwenden guihandles tut. Guihandles in Unterkomponente ermöglicht die Griffe an der Hauptfigur (einschließlich anderer Sub-Komponenten, die in ihm sind). Wenn die zweite Teilkomponente hat den gleichen Tag-Namen einer beliebigen Komponente, werden sie verwirrt, wenn die Komponente aufruft, was es zu sein glaubt, das Bauteil ist.

Verwenden Sie nicht die Matlab-Funktion guihandles

Objektorientierte Programmierung mit mir ist eine Programmiersprache Methode zum Erstellen von guter Struktur. Dies ist, indem jedes Objekt (Klasse), um seine Aufgaben zu erfüllen und intern nur über spezielle Schnittstellen mit der Umwelt kommunizieren. Globale Variablen guihandles stellt eine potentiell tödliche Gefahr. Das Konzept der Welt sucht in anderen Worten, für eine geringe Kopplung, hohe Kohäsion und gut definierten Module.

Verfasst von David Gustafsson, in: Programmierung | Tags: , , ,

Das Thema ist aus modifizierten Aeros 2,0 - Blogglista.se - Übersetzung erfolgt durch N2H