P edn ka 11 28 4 2014 ji ebesta
This presentation is the property of its rightful owner.
Sponsored Links
1 / 17

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


  • 68 Views
  • Uploaded on
  • Presentation posted in: General

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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

TÉMA – GUI vMATLABu

GUI v Matlabu - úvod

Příklady GUI v Matlabu


Gui v matlabu vod 1 7

  • 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)


Gui v matlabu vod 2 7

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)


Gui v matlabu vod 3 7

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)


Gui v matlabu vod 4 7

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)


Gui v matlabu vod 5 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)


Gui v matlabu vod 6 7

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)


Gui v matlabu vod 7 7

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)


P klady gui v matlabu 1 7

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ů


P klady gui v matlabu 2 7

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]);


P klady gui v matlabu 3 7

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


P klady gui v matlabu 4 7

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ů


P klady gui v matlabu 5 7

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ý


P klady gui v matlabu 6 7

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');


P klady gui v matlabu 7 7

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


Rozbor z po tov ho testu

TÉMA NÁSLEDUJÍCÍ PŘEDNÁŠKY

Rozbor zápočtového testu

DĚKUJI ZA POZORNOST


  • Login