Wstęp
Sprawy techniczne
GUIDE
Kontrolki
Przykłady
GUI bez GUIDE
Trochę o kompilacji
Linki
 

Obsługa zdarzeń



Obsługa zdarzeń w MATLABie odbywa się za pośrednictwem pięciu funkcji:
  • CreateFcn
  • DeleteFcn
  • ButtonDownFcn
  • KeyPressFcn
  • Callback

Funkcje te są dostępne dla większości kontrolek. W niektórych przypadkach jest dostępna ich tylko część.

1). CreateFcn - funkcja ta jest wywoływana w trakcie tworzenia kontrolki ale po ustawieniu wszystkich jej parametrów.

function kontrolka1_CreateFcn(hObject, eventdata, handles)

  • hObject - uchwyt (identyfikator) do kontrolki kontrolka1
  • eventdata - zostanie wykorzystane w przyszłych wersjach MATLABa
  • handles - zbiór uchwytów do wszystkich kontrolek - pusty do momentu wywołania wszystkich funkcji CreateFcn


2). DeleteFcn - funkcja ta jest wywoływana w trakcie usuwania kontrolki ale przed usuwaniem jej parametrów.

function kontrolka1_DeleteFcn(hObject, eventdata, handles)

  • hObject - uchwyt (identyfikator) do kontrolki kontrolka1
  • eventdata - zostanie wykorzystane w przyszłych wersjach MATLABa
  • handles - zbiór uchwytów do wszystkich kontrolek


3). ButtonDownFcn - funkcja ta jest wywoływana po kliknięciu myszą na kontrolke (Gdy parametr Enable == 'on' funkcje wywołuje tylko prawy przycisk myszy. Dla Enable == 'off' funkcję wywołują oba przyciski myszy).

function kontrolka1_ButtonDownFcn(hObject, eventdata, handles)

  • hObject - uchwyt (identyfikator) do kontrolki kontrolka1
  • eventdata - zostanie wykorzystane w przyszłych wersjach MATLABa
  • handles - zbiór uchwytów do wszystkich kontrolek


4). KeyPressFcn - funkcja ta jest wywoływana po naciśnięciu klawisza na aktywnej kontrolce (W przypadku naciśnięcia klawisza spacji wywoływana jest najpierw funkcja KeyPressFcn a następnie CallBack. Przy innych klawiszach wywoływana jest tylko funkcja KeyPressFcn).

function kontrolka1_KeyPressFcn(hObject, eventdata, handles)

  • hObject - uchwyt (identyfikator) do kontrolki kontrolka1
  • eventdata - zostanie wykorzystane w przyszłych wersjach MATLABa
  • handles - zbiór uchwytów do wszystkich kontrolek


5). CallBack - funkcja ta jest wywoływana w sytuacji gdy na danej kontrolce została wykonana właściwa dla niej akcja (dla przycisku - wciśnięcie, radiobutton i checkbox - zaznaczenie, slider - przesunięcie suwaka).

function kontrolka1_CallBack(hObject, eventdata, handles)

  • hObject - uchwyt (identyfikator) do kontrolki kontrolka1
  • eventdata - zostanie wykorzystane w przyszłych wersjach MATLABa
  • handles - zbiór uchwytów do wszystkich kontrolek




Dodatkowo dla kontrolki figure dostępnych jest pięć dodatkowych funkcji obsługujących zdarzenia:
  • WindowButtonDownFcn
  • WindowButtonMotionFcn
  • WindowButtonUpFcn
  • ResizeFcn
  • CloseRequestFcn

1). WindowButtonDownFcn - funkcja ta jest wywoływana w momencie wciśnięcia przycisku myszy na obszarze okna, nad nieaktywną kontrolką, lub nad tłem wykresu.

function figure1_WindowButtonDownFcn(hObject, eventdata, handles)

  • hObject - uchwyt (identyfikator) do kontrolki figure1
  • eventdata - zostanie wykorzystane w przyszłych wersjach MATLABa
  • handles - zbiór uchwytów do wszystkich kontrolek - pusty do momentu wywołania wszystkich funkcji CreateFcn


2). WindowButtonMotionFcn - funkcja ta jest wywoływana w trakcie poruszania kursorem nad obszarem okna, ale nie nad menu lub paskiem tytułowym.

function figure1_WindowButtonMotionFcn(hObject, eventdata, handles)

  • hObject - uchwyt (identyfikator) do kontrolki figure1
  • eventdata - zostanie wykorzystane w przyszłych wersjach MATLABa
  • handles - zbiór uchwytów do wszystkich kontrolek


3). WindowButtonUpFcn - funkcja ta jest wywoływana w momencie puszczenia wciśniętego przycisku myszy na obszarze okna, nad nieaktywną kontrolką, lub nad tłem wykresu.

function figure1_WindowButtonUpFcn(hObject, eventdata, handles)

  • hObject - uchwyt (identyfikator) do kontrolki figure1
  • eventdata - zostanie wykorzystane w przyszłych wersjach MATLABa
  • handles - zbiór uchwytów do wszystkich kontrolek


4). ResizeFcn - funkcja ta jest wywoływana w momencie zmiany rozmiaru okna.

function figure1_ResizeFcn(hObject, eventdata, handles)

  • hObject - uchwyt (identyfikator) do kontrolki figure1
  • eventdata - zostanie wykorzystane w przyszłych wersjach MATLABa
  • handles - zbiór uchwytów do wszystkich kontrolek


5). CloseRequestFcn - funkcja ta jest wywoływana w sytuacji gdy użytkownik zamierza zamknąć okno.

function figure1_CloseRequestFcn(hObject, eventdata, handles)

  • hObject - uchwyt (identyfikator) do kontrolki figure1
  • eventdata - zostanie wykorzystane w przyszłych wersjach MATLABa
  • handles - zbiór uchwytów do wszystkich kontrolek