Wykład 4 Dr Aneta Polewko-Klim https://play.google.com
36. Uchwyty (handless) plot(1:11,‘*:') h = findobj; Każdy element graficzny wyświetlony w oknie wykresu ma swój uchwyt. Wykorzystując uchwyty możemy mieć dostęp do wszystkich elementów okna graficznego. W celu uzyskania głównych uchwytów stosujemy funkcję findobj . Przykład plot(1:11,‘*:') h = findobj; >>h = 0 1.0000 45.0011 1.0150
36. Uchwyty (handless) >> get(h,'type') Możemy również wywołać w bardziej zrozumiałej składni: Przykład cd. >> get(h,'type') ans = 'root' 'figure' 'axes' 'line'
Ustawienia parametrów graficznych - funkcja set Mając uchwyt do danego elementu graficznego możemy zmienić jego parametry. W tym celu korzystamy z funkcji set(uchwyt, parametr,'wartość) >> set(h(4), 'Marker', ‘o', 'MarkerSize', 20) Przykład
Pobieranie parametrów graficznych - funkcja get Mając uchwyt do danego elementu graficznego możemy sprawdzić jego parametry. W tym celu korzystamy z funkcji get(uchwyt, parametr) >> get(h(4), 'Marker') Przykład
Inne funkcje związane z grafiką uchwytów -przykłady http://www.igf.fuw.edu.pl/ZOI/Matlab/Lessons/MatlabII/Dzialy/D8M2.htm
37. Graficzny system komunikacji z użytkownikiem (GUI) GUI (ang. Graphical User Interface, GUI) pozwala dodać do grafiki Matlaba interaktywność, czyli możliwość reagowania na polecenia użytkownika. W Matlabie mamy do dyspozycji m.in.. przyciski, przełączniki, listy itd. Koncepcja graficznego systemu polega na realizacji dwóch zasad: - budowaniu wyglądu aplikacji ze standardowych elementów graficznych o prostym wyglądzie; tworzeniu aplikacji o działaniu sterowanym zdarzeniami; Pierwsza zasada realizowana jest przez wykorzystanie elementów takich jak przyciski, suwaki itp. druga, poprzez przypisanie do każdego z tych elementów procedury, która wykona odpowiednie zadanie związane z tym elementem.
Dostępne elementy komunikacji: przycisk (pushbutton) przełącznik (togglebutton) pole edycyjne (edit) pole wyboru z możliwością wyboru kilku opcji (checkbox) pole wyboru z możliwością wyboru tylko jednej opcji (radiobutton) ramka (frame) pole tekstowe (text) lista (listbox) lista rozwijana (popupmenu) suwak (slider)
Hierarchia obiektów graficznych w systemie.
Tworzenie obiektów GUI. Do tworzenia obiektów GUI typu przycisk służy funkcja uicontrol. Może mieć dwa różne wywołania: id = uicontrol( własność, wartość,...) id = uicontrol( idf, własność, wartość,...) Do tworzenia elementów menu mamy funkcję: id = uimenu( własność, wartość,...) id = uimenu( idf, własność, wartość,...) idf - identyfikator przodka w obrębie którego będzie tworzony obiekt id - jest identyfikator tworzonego obiektu.
Tworzenie menu
Przyciski – funkcja uimenu Składnia (Matlab help) handle = uimenu('PropertyName',PropertyValue,...) handle = uimenu(parent,'PropertyName',PropertyValue,...) Przykład f = uimenu('Label','Workspace'); uimenu(f,'Label','New Figure','Callback','figure'); uimenu(f,'Label','Save','Callback','save'); uimenu(f,'Label','Quit','Callback','exit',... 'Separator','on','Accelerator','Q');
Własności obiektów uimenu .
Przykład
Przykład
Przykład – funkcja makemenu
Tworzenie obiektów interfejsu użytkownika w GUI
Przyciski – funkcja uicontrol Składnia (Matlab help) handle = uicontrol('PropertyName',PropertyValue,...) handle = uicontrol(parent,'PropertyName',PropertyValue,...) Przykład
Własności obiektów uicontrol.
38. Wbudowane standardowe okienka -inputdlg Ilość linii zwiększa ilość wyświetlanych linii w polach edycyjnych okienka. Wartości domyślne zatwierdzamy przyciskiem OK. Jest to tablica komórkowa, więc aby skorzystać z jej zawartości trzeba się odpowiednio odwołać. Jeśli wciśniemy klawisz Cancel, wynikiem także będzie tablica komórkowa, ale o rozmiarze 0x0. Jak widać ilość linii zwiększa po prostu ilość wyświetlanych linii w polach edycyjnych okienka. Wartości domyślne możemy zatwierdzić przyciskiem OK, lub wpisać na ich miejsce coś innego. Zawartość pól edycyjnych zostanie wpisana wtedy do zmiennej rezultat. Jest to tablica komórkowa, więc aby skorzystać z jej zawartości trzeba się odpowiednio odwołać. Jeśli wciśniemy klawisz Cancel, wynikiem także będzie tablica komórkowa, ale o rozmiarze 0x0.
38. Wbudowane standardowe okienka - helpdlg
38. Wbudowane standardowe okienka - msgbox
39. Wbudowane standardowe okienka - axlimdlg Okienko służy do zmiany rodzaju i skali osi współrzędnych. Wywołanie to sama nazwa: axlimdlg lub axlimdlg('Tytuł',[1 1],str2mat('Zakres x','Zakres y'))
39. Wbudowane standardowe okienka - uiputfile W takim wywołaniu podajemy domyślną nazwę pliku i nazwę okienka. Funkcja ta wyświetla okienko umożliwiające wprowadzenie nowej nazwy pliku i ścieżki dostępu w celu zapisania pliku pod podaną nazwą. [nazwa_pliku, sciezka]=uiputfile('matlab.m','Zapisz jako')
39. Wbudowane standardowe okienka - uiputfile Możemy podać szablon nazw wyświetlanych na liście plików. [nazwa_pliku, sciezka]=uiputfile({'*.jpg','grafika (*.jpg)';... '*.m;*.fig;*.mat;*.mdl';... 'Pliki Matlaba (*.m, *.fig, *.mat, *.mdl)';... '*.ja','moje wlasne rozszerzenie (*.ja)'},... 'Zapisz jako') nazwa_pliku = kkkkk.jpg sciezka = C:\Tools\matlabR12\work\
40. Wbudowane standardowe okienka - uigetfile To okienko umożliwia wybór istniejącego pliku. [nazwa_pliku, sciezka] = uigetfile('*.txt', 'Otwórz plik')
41. Wbudowane standardowe okienka - uisetcolor Okienko dialogowe umożliwiające wybór koloru w standardzie RGB. Funkcja zwraca wektor koloru w standardzie RGB. Wywołanie: nazwa funkcji, dodatkowo możemy podać argumenty identyfikator obiektu, dla którego mamy zmienić kolor, oraz tytuł wyświetlanego okienka. >> k=uisetcolor('Koloooory') k = 0.5020 0.5020 0.2510
42. Wbudowane standardowe okienka - uisetfont. Funkcja wyświetla okienko umożliwiające zmianę czcionki. Jako argumenty podajemy identyfikator obiektu typu text lub axes, oraz tytuł wyświetlanego okienka. Funkcja zwróci strukturę zmienionej czcionki. Oba parametry funkcji są opcjonalne. uisetfont('Zmieniamy czcionkę') ans = FontName: 'Briquet' FontUnits: 'points' FontSize: 20 FontWeight: 'normal' FontAngle: 'normal'
Eksploracja danych -nazewnictwo http://www.ploug.org.pl/