MATLAB:

tworzenie graficznego interfejsu użytkownika

Skrypt

Po zaprojektowaniu wyglądu naszej aplikacji, czas na napisanie skryptu odpowiadającego za jej działanie. Środowisko GUIDE automatycznie wygeneruje podstawowy skrypt, który następnie możemy uzupełniać i modyfikować. Obowiązują tu zasady podobne jak przy pisaniu normalnych skryptów - mamy dostęp do zmiennych, możemy tworzyć nowe zmienne i obiekty, wywoływać funkcje własne i biblioteczne.

Skrypt obsługujący aplikację graficzną tworzy strukturę handles, której pola odpowiadają wszystkim komponentom, identyfikując je według ich atrybutu "Tag". Możemy dodać do niej dodatkowe pola, pełniące funkcję zmiennych globalnych, dostępnych z każdego miejsca w skrypcie.

Dla każdego komponentu tworzone są funkcje typu Callback (wywołanie zwrotne) określające, jak zachowa się komponent po tym, jak użytkownik go w jakiś sposób aktywuje - kliknie na guzik, przeciągnie pasek przewijania, itp.

Struktura skryptu

Pierwszą ważną rzeczą, która będzie często przez nas modyfikowana, jest funkcja startowa. Jest ona wykonywana na początku każdego skryptu, przed wyświetleniem głównego okna. Możemy wykorzystać ją na przykład do przypisania początkowych wartości używanym zmiennym.

function [nazwa_programu]_OpeningFcn(hObject, eventdata, handles, varargin)

Jej parametry to kolejno: odniesienie do głównego okna programu - hObject, pole eventdata przewidziane dla dalszych wersji programu, aktualnie nie wykorzystywane, struktura handles, oraz wektor parametrów wywołania varargin.

Funkcje tworzące i wywołania zwrotne (Callbacks)

Są to funkcje tworzone automatycznie dla każdego komponentu, postaci

function [nazwa_komponentu]_CreateFcn(hObject, eventdata, handles)

function [nazwa_komponentu]_Callback(hObject, eventdata, handles)

Pierwsza z nich jest wykonywana jednorazowo, przy tworzeniu komponentu. Można tam ustawić na przykład początkowe parametry komponentu. Druga określa zachowanie komponentu przy aktywacji, na przykład po wciśnięciu guzika.

Za pomocą skryptu możemy odczytywać i modyfikować wszelkie parametry komponentów. służą do tego funkcje:

set(handles.component,'property','variable');

za pomocą której ustawiamy właściwość o nazwie property dla komponentu o tagu component na variable , oraz

variable = get(handles.component,'property');

dzięki której zmiennej lokalej variable przypisujemy aktualną właściwość o nazwie property komponentu o tagu component.

Ta wiedza jest już wystarczająca, aby stworzyć pierwsze własne GUI. Następny rozdział opisze ten proces krok po kroku.

Autor: Mateusz Krawczyk