1 / 17

Přednáška 11 28.4.2014 Jiří Šebesta

Počítače a programování 2. Přednáška 11 28.4.2014 Jiří Šebesta. TÉMA – GUI v MATLAB u. GUI v Matlabu - ú vod Příklady GUI v Matlabu. G rafické uživatelské rozhraní (GUI) v Matlabu umožňuje komfortní ovládání matlabovské aplikace

Download Presentation

Přednáška 11 28.4.2014 Jiří Šebesta

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Počítače a programování 2 Přednáška 11 28.4.2014 Jiří Šebesta

  2. TÉMA – GUI vMATLABu GUI v Matlabu - úvod Příklady GUI v Matlabu

  3. Grafické uživatelské rozhraní(GUI) v Matlabu umožňuje komfortní ovládání matlabovské aplikace • Princip je obdobný jako u Microsoft Visual Studia (sestavení grafické podoby okna – formuláře a zpracování událostí), jen s omezením na několik grafických objektů: • statický text • editační text • tlačítko • rádiové tlačítko • zaškrtávátko • pop-up menu • listbox • graf GUI v Matlabu – úvod (1/7)

  4. Tvorba GUI se spouští příkazemguidevework space. Prázdné okno představuje formulář, do kterého se vkládají grafické objekty (na obrázku je příklad všech zákl. objektů): GUI v Matlabu – úvod (2/7)

  5. U každého grafického objektu lze definovat vlastnosti (vizuální podobu a další parametry) pomocí Property Inspectoru (vyvolá se klikem pravého tlačítka myši na objekt). Parametr Tag reprezentuje jméno objektu. GUI v Matlabu – úvod (3/7)

  6. Formulář okna se ukládá je soubor xxx.fig. Současně se ukládá soubor stejného jména jako m-file xxx.m, kde jsou automaticky připraveny funkce: jménoobjektu_CreateFcn – volána při vytváření objektu jménoobjektu_Callback – volána při události na objektu (vždy jen jedna typická událost, např. klik u tlačítek, posuv šoupátkem u lišty apod.) Do těchto funkcí lze vkládat matlabovský kód a definovat chování aplikace. GUI v Matlabu – úvod (4/7)

  7. Pro nastavení parametru objektu (mimo tvorbu GUI) se využívá funkce set: • set(objekt, parametr, hodnota) • objekt může být reprezentován: • hObject – aktuálně fokusovaný objekt (např. ve funkci Callback pro daný objekt bude fokusovaný právě tento objekt) • handles.jmenoobjektu – objekt, který není fokusován (všechny vytvořené objekty ve formuláři jsou položkami struktůry handles) • Příklad: • set(handles.My_object,'Visible','on'); • Nastaví viditelnost objektu My_object GUI v Matlabu – úvod (5/7)

  8. Pro získání parametru objektu (mimo tvorbu GUI) se využívá funkce set: x = get(objekt, parametr) objekt může být reprezentován stejně jako pro funkci set Automaticky vytvořená funkce jménoprojektu_OpeningFcn() se volá při otvírání formuláře a může být použita pro inicializační definice. Automaticky vytvořená funkce varargout = jménoprojektu_OutputFcn se volá při zavírání formuláře a může být použita pro předávání parametrů (výsledků). GUI v Matlabu – úvod (6/7)

  9. Pro vstup parametrů do matalbovské aplikace s GUI lze použít proměnnou varargin při volání funkce se jménem projektu varargout = jménoprojektu(varargin) Kompletní průvodce tvorbou GUI v Matlabu je v příloze (soubory k přednášce) GUI v Matlabu – úvod (7/7)

  10. 1) Sestavte matlabovské GUI se třemi šoupacími lištami, které představují úroveň zastoupení barvy RGB, která se automaticky zobrazí ve třech statických textech a samotná barva jako barva pozadí tlačítka. Příklady GUI v Matlabu (1/7) Vizuální podoba a jména objektů

  11. Při otevírání formuláře budou všechny šoupací lišty nastaveny do středu, hodnoty barev budou 50 (procent) a barva bude střední šedá (definujeme v OpeningFcn() ) Příklady GUI v Matlabu (2/7) % --- Executes just before Ex139 is made visible. function Ex139_OpeningFcn(hObject, eventdata, handles, varargin) R_val = 50; G_val = 50; B_val = 50; set(handles.R_Slider,'Value', R_val); set(handles.G_Slider,'Value', G_val); set(handles.B_Slider,'Value', B_val); set(handles.Txt_R,'String', R_val); set(handles.Txt_G,'String', G_val); set(handles.Txt_B,'String', B_val); set(handles.PB,'BackgroundColor', [R_val/100 G_val/100 B_val/100]);

  12. Při posunutí šoupátka se volá příslušná funkce Callback(), do které implementujeme kód pro načtení hodnot nastavení šoupa-cích lišt, nastavení statického textu pro dané šoupátko (se kterým bylo posouváno) a definuje se a vloží nová barva pozadí tlačítka (příklad pro změnu zastoupení červené barvy) Příklady GUI v Matlabu (3/7) % --- Executes on slider movement. function R_Slider_Callback(hObject, eventdata, handles) R_val = round(get(hObject,'Value')); G_val = round(get(handles.G_Slider,'Value')); B_val = round(get(handles.B_Slider,'Value')); set(handles.Txt_R,'String',R_val); set(handles.PB,'BackgroundColor', [R_val/100 G_val/100 B_val/100]); Příklad: Ex139.fig a Ex139.m

  13. 1) Sestavte matlabovské GUI pro zobrazení funkce z=x*sin(x)+y*sin(y) s výběrem typu grafu – konturový, povrchový a síťový. Příklady GUI v Matlabu (4/7) Vizuální podoba a jména objektů

  14. Při otevírání formuláře budou se vypočtou matice X a Y pro mřížku a Z jako závislá proměnná na X a Y pro zadanou funkci. Protože se nacházíme uvnitř funkce X, Y a Z musí být specifikovány jako globální proměnné – viz kód Příklady GUI v Matlabu (5/7) function Ex140_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); global X Y Z [x,y] = meshgrid(-4*pi:0.2*pi:4*pi); Z = x.*sin(x)+y.*sin(y); X = x(1,:); Y = y(:,1); set(handles.Out_Axes,'Visible','off'); Graf bude po spuštění projektu neviditelný

  15. Pro aktivaci vykreslení vybraného typu grafu je použito tlačítko Btn_Plot, proto ve funkci Btn_Plot_Callback() jsou nejprve aktivovány globální proměnné X, Y a Z s výsledky a aktivována viditelnost grafu. Následuje fokusace grafu Out_Axes a příkaz cla pro vyčištění starých parametrů grafu. Do proměnné index_popup se uloží vybraný typ grafu (jako index pořadí řetězce v pop-up menu PM). Příklady GUI v Matlabu (6/7) function Btn_Plot_Callback(hObject, eventdata, handles) global X Y Z set(handles.Out_Axes,'Visible','on'); axes(handles.Out_Axes); cla; index_popup = get(handles.PM, 'Value');

  16. V poslední části se pomocí switch-case vybere a vytiskne příslušný typ grafu. Následuje společný kód pro všechny grafy. Příklady GUI v Matlabu (7/7) switchindex_popup case 1 contour(X,Y,Z); view(0, 90) case 2 surf(X,Y,Z); view(135, 55) case 3 mesh(X,Y,Z); view(135, 55) end grid on title('z=x*sin(x)+y*sin(y)') … Příklad: Ex140.fig a Ex140.m

  17. TÉMA NÁSLEDUJÍCÍ PŘEDNÁŠKY Rozbor zápočtového testu DĚKUJI ZA POZORNOST

More Related