Užitočné tipy

Matlab Notes

Táto časť popisuje jeden z mnohých spôsobov vývoja aplikácií GUI v prostredí MATLAB, v ktorých:

  1. hlavné okno aplikácie a podriadené okná sa vytvárajú v prostredí vizuálneho programovania GUIDE,
  2. je napísaná funkcia s podfunkciami, ktorá implementuje spoločnú prácu týchto okien a interakciu medzi nimi.

Ako jednoduchý príklad napíšeme grafické rozhranie do funkcií quad a quadl, ktoré sú určené na numerickú integráciu funkcií jednej premennej od 0 do 1 podľa kvadratúrnych vzorcov Simpsona a Gauss-Lobatta. Na príklade tejto aplikácie zvážime implementáciu bodov 1) a 2).

Vzhľad hlavného okna integrálnej aplikácie je znázornený na obrázku nižšie.


Hlavné okno integrálnej aplikácie

Tlačidlo Metóda slúži na otvorenie dialógového okna metódy, ktoré je zobrazené na obrázku nižšie, v ktorom môžete pomocou prepínačov vybrať jednu z dvoch integračných metód:

  • podľa kvadratúrnych vzorcov Simpsona,
  • podľa Gauss-Lobattovho kvadratúrneho vzorca.


Dialógové okno Metóda pre výber metódy integrácie

Účelom tlačidla Presnosť v hlavnom okne aplikácie sa otvára dialógové okno tolerancie zobrazené na obrázku nižšie, v ktorom používateľ nastavuje presnosť integrácie vo vstupnom riadku.


Dialóg tolerancie na nastavenie presnosti integrácie

Po kliknutí na tlačidlo Vypočítať v hlavnom okne aplikácie sa zobrazí integrál funkcie zadanej vo vstupnom riadku, funkcia hlavného okna aplikácie sa vypočíta a výsledok získaný zvolenou metódou a so špecifikovanou presnosťou sa zobrazí v riadku Odpovedať.

Aplikácia s grafickým používateľským rozhraním sa teda skladá z hlavného integrovaného okna a metódy dvoch tolerančných dialógových okien a tolerancie, v ktorých sú nastavené niektoré parametre aplikácie. Tieto dialógové okná urobíme modálnymi, t.j. Keď sa jeden z nich objaví na obrazovke a nastaví v nich potrebné parametre, musíte toto okno zatvoriť, aby ste mohli pokračovať v práci s integrovanou aplikáciou.

Nastavenia vykonané v oknách metód a tolerancií by samozrejme mali byť k dispozícii v podfunkciách prvkov hlavného okna rozhrania na spracovanie udalostí. Naopak, pri otváraní okna metódy a tolerancie by mala byť známa metóda integrácie vybraná skôr a presnosť, takže prepínač zodpovedajúci predtým vybranej metóde integrácie je nastavený v okne metódy a predtým nastavená presnosť sa pri otvorení zobrazí na vstupnom riadku okna tolerancie.

Najprv musíte v prostredí GUIDE vytvoriť hlavné integrálne okno. (V časti Aplikácie s grafickým používateľským rozhraním sa podrobne diskutuje o vytvorení jednoduchých aplikácií s grafickým rozhraním v prostredí GUIDE). V našom prípade musíme vytvoriť okno s tromi tlačidlami:

a dva riadky vstupu, naľavo od nich sú umiestnené textové štítky:

Vytváranie okien v prostredí GUIDE

Najprv stručne diskutujeme o vytvorení dialógových okien vo vizuálnom programovacom prostredí GUIDE MATLAB, aby sme ušetrili čas čitateľa a zdôraznili potrebné kroky v našom prípade. Po vykonaní príkazu guide na príkazovom riadku MATLAB

(alebo stlačením tlačidla GUIDE na paneli s nástrojmi MATLAB) sa na obrazovke objaví dialógové okno GUIDE Quick Start, v ktorom na karte Create New GUI v zozname GUIDE Template je potrebné vybrať riadok Blank GUI (Default), aby ste vytvorili dialógové okno s prázdnym formulárom, ktorý použijeme pridajte prvky rozhrania a kliknite na OK. Potom sa na obrazovke objaví okno editora GUIDE, ktoré obsahuje prázdne okno aplikácie (mriežka sa naň aplikuje).

Na paneli komponentov umiestnenom zvislo vľavo v okne editora GUIDE sa vyberie požadovaný prvok rozhrania, potom sa myšou nakreslí na prázdne okno aplikácie a na nakreslený prvok rozhrania sa dvakrát klikne, aby sa zmenili jeho vlastnosti. V dôsledku dvojitého kliknutia sa otvorí okno Inspektor vlastností, v prvom stĺpci ktorého sú zobrazené názvy vlastností av druhom stĺpci - ich hodnoty. Kroky na vytvorenie prvkov rozhrania v editore GUIDE a nastavenie hodnôt ich vlastností v inšpektore Vlastnosti sú uvedené na obrázku nižšie.


Fázy vytvárania prvkov rozhrania a nastavenie hodnôt ich vlastností

Hodnoty sa zadávajú do buniek druhého stĺpca alebo sa vyberajú kliknutím na tlačidlo vedľa tohto stĺpca. Ak je hodnota vlastnosti pole, naľavo od názvu vlastnosti sa nachádza tlačidlo so znamienkom plus, kliknutím na ktoré sa pole otvorí a v pravom stĺpci môžete zmeniť hodnotu jeho komponentov.

V hlavnom okne aplikácie musíte umiestniť:

  • dva textové objekty (pomocou tlačidla Statický text na paneli komponentov editora GUIDE)
  • dva vstupné riadky (pomocou tlačidla Upraviť text na paneli komponentov editora GUIDE)
  • tri tlačidlá (pomocou tlačidla na paneli komponentov editora GUIDE).

  1. Ak sa náhodou na prázdne okno aplikácie nakreslil nepotrebný objekt, možno ho odstrániť kliknutím myšou a stlačením klávesu Delete.
  2. Nakreslené objekty sa môžu pohybovať pomocou myši a meniť ich veľkosť potiahnutím kurzora myši nad značky na okraji vybratého objektu.
  3. Nebudeme analyzovať všetky metódy a techniky pre prácu s objektmi nakreslenými na prázdnom okraji okna aplikácie.

Preto stručne opíšeme fázy vytvárania ovládacích prvkov v hlavnom okne aplikácie a tie vlastnosti, ktoré je potrebné nastaviť v editore vlastností.

Editor rozloženia GUI

V dôsledku vytvorenia rozhrania dostaneme dva súbory: fig-súbor so "postavou" samotného rozhrania a m-súbor, ktorý vytvára Matlab sám a obsahuje programový kód všetkých prvkov rozhrania.

Hlavnou výhodou sprievodcu je jednoduché vytvorenie jednoduchého GUI, as Celý kód rozhrania je generovaný samotným Matlabom. Aby softvér GUI fungoval, stačí študovať princíp výmeny údajov pomocou príkazov setappdata a getappdata (čo je štandardná technika výmeny údajov medzi rôznymi prvkami GUI).

Profesionálnejším prístupom je však vytvoriť GUI programovo bez použitia sprievodcu.

GUI programovo

  • Spravovanie kódu GUI je jednoduchšie (kód je lepšie štruktúrovaný, je ľahšie vytvárať nové prvky, odstraňovať staré atď.)
  • Neexistuje žiadny samostatný súbor s obrázkom pre rozhranie a samostatný programový súbor s názvom m (pretože akákoľvek aktualizácia súboru s obrázkom v príručke vyžaduje zodpovedajúcu aktualizáciu súboru m a môže viesť k nežiaducim účinkom).
Samozrejme, musíte sa najskôr zoznámiť s týmto sprievodcom, aby ste lepšie porozumeli GUI v Matlabe, ale podľa môjho názoru sa oplatí prejsť na programové vytvorenie GUI, čím skôr, tým lepšie.

A tu sa otvára druhá strana mince. Hlavným problémom pri programovom vytvorení GUI v MATLABe je, že musíte manuálne zadať umiestnenie všetkých prvkov rozhrania (parameter „Poloha“ so 4 prvkami: súradnice x, y + šírka a dĺžka). To je veľmi nepohodlné. V príručke je tento problém vyriešený veľmi jednoducho - pomocou nástroja Nástroje-> Zarovnať objekty.

Jednoduché rozhrania sa dajú vytvoriť celkom jednoducho programovo, ale čím viac tlačidiel a polí, tým zložitejšia je táto úloha.

Jednoduché príklady programového vytvorenia rozhrania nájdete tu GUI bez sprievodcu.

Jedným z dôležitých problémov pri programovom vytváraní GUI je rozloženie prvkov. Dobrý prehľad nástrojov, ktoré pomáhajú vyriešiť tento problém, je k dispozícii na odkaz Manažéri rozloženia Matlab. Žiaľ, iba v komentároch k preskúmaniu odkazom sa zmienili o Paneli nástrojov rozloženia GUI. Tento súbor nástrojov bude uvedený neskôr.

GUI Layout Toolbox kompletne rieši problém s vizuálnym rozložením GUI (nie je to nič, čo sa GUI Layout Toolbox dostalo do vzorky týždenného programu na hlavnom portáli Matlab Pick of the Week).

GUI s GUI Layout Toolbox

Všeobecné pokyny pre prácu s nástrojom GUI Layout Toolbox sú veľmi jednoduché:

1. Vytvorte mriežku (uiextras.Grid) (alebo môžete tento krok preskočiť)

2. Položte panely (uiextras.Panel) na mriežku,

3. Na panel umiestnime boxy (uiextras.Box)

4. Do políčok umiestnime ovládacie prvky: tlačidlá, osi alebo niečo iné.

Teraz je rozloženie všetkých prvkov rozhrania zabezpečené pomocou GUI Layout Toolbox.

Dobrý príklad GUI pomocou GUI Layout Toolbox s mojimi pripomienkami si môžete stiahnuť na GUI_example.m 47.

V mojom príklade dochádza k výmene údajov medzi funkciami a prvkami rozhrania pomocou techniky nazývanej zdieľanie premenných medzi rodičmi a vnorenými - premenné deklarované v hlavnej funkcii sú viditeľné vo všetkých vnorených funkciách. Túto techniku ​​je možné použiť namiesto štandardných setappdata a getappdata.

Hlavné okno integrálnej aplikácie

Pred umiestnením objektov nastavíme vlastnosti hlavného okna integrálnej aplikácie. Ak to chcete urobiť, dvakrát kliknite na prázdne okno v editore GUIDE a v okne inšpektora vlastností nastavte nasledujúce hodnoty, ktoré sú uvedené v tabuľke.

Vlastnosti integrovaného okna
hodnotajednotkypixelyjednotky na meranie veľkosti a polohy okna
pozície[400 400 400 152]súradnice ľavého dolného rohu, šírka, výška (v merných jednotkách určených vlastnosťou Units), ak ich chcete nastaviť, kliknite na tlačidlo so znamienkom plus naľavo od názvu vlastnosti Position
názovintegrálnetext názvu okna
štítokwin_mainznačku okna aplikácie, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí

Po nastavení vlastností okna môžete pokračovať v umiestňovaní hlavných prvkov rozhrania do okna aplikácie prázdne.

Umiestnenie prvkov rozhrania v integrálnom okne

Je potrebné umiestniť dva textové objekty na prázdne okno aplikácie (textové objekty sa pridávajú na prázdne okno aplikácie pomocou tlačidla Statický text na paneli komponentov editora GUIDE), určené na zobrazenie textu v aplikačnom okne s nápismi Function and Answer a dvoma vstupnými riadkami vedľa nich (ak pomocou tlačidla Upraviť text na paneli komponentov editora GUIDE). Nasledujúca tabuľka zobrazuje vlastnosti textových objektov, ktoré by sa mali zmeniť tak, aby okno aplikácie vyzeralo ako integrál hlavného okna aplikácie.

poznámka
Všeobecné vlastnosti môžete nastaviť v inšpektore vlastností tak, že najprv vyberiete niekoľko objektov (v našom prípade dva textové objekty), podržíte kláves a potom dvakrát kliknete na niektorý z vybraných objektov.

Všeobecné vlastnosti textových objektov
hodnotaVeľkosť písma14veľkosť písma textu
ForegroundColormodrýfarba písma
Vlastnosti textového objektu funkcie
povrázokfunkcianápis na objekte
Vlastnosti textového objektu Odpoveď
povrázokOdpoveďnápis na objekte

Značky sú voliteľné (vyberú sa automaticky a nebudeme ich potrebovať, pretože nebudeme odkazovať na textové objekty). Veľkosti a poloha v tabuľke nie sú uvedené, pretože v našom jednoduchom príklade môžu byť vybrané pomocou myši.

Teraz vedľa týchto textových objektov umiestnime dva vstupné riadky, ktoré nazývame vstupným riadkom Function a vstupným riadkom Answer (vstupné riadky sa pridávajú na prázdne okno aplikácie pomocou tlačidla Upraviť text na paneli komponentov editora GUIDE). Nasledujúca tabuľka zobrazuje hodnoty vlastností pre vstupné riadky funkcie a odpovede, ktoré by sa mali zmeniť v inšpektore vlastností.

Bežné vlastnosti vstupného reťazca
hodnotaVeľkosť písma14veľkosť písma textu
povrázokprázdny reťazectext na vstupnom riadku, mal by byť prázdny, t. v inšpektore Vlastnosti odstráňte hodnotu Upraviť text vlastnosti String
Vlastnosti textového objektu funkcie
štítokedt_funznačka vstupného riadku, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí
Vlastnosti textového objektu Odpoveď
štítokedt_ansznačka vstupného riadku, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí

Veľkosť a umiestnenie vstupných riadkov je možné nastaviť pomocou myši.

Ďalej umiestnime tri tlačidlá Metóda, Presnosť a Vypočítať (tlačidlá sa pridávajú na prázdne okno aplikácie pomocou tlačidla na paneli komponentov editora GUIDE). Vlastnosti týchto tlačidiel sú uvedené v nasledujúcej tabuľke.

Všeobecné vlastnosti tlačidiel
hodnotaVeľkosť písma14veľkosť písma textu
ForegroundColormodrýfarba písma
Vlastnosti textového objektu metóda
štítokbtn_methodznačka tlačidla, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí
povrázokmetódanápis na tlačidle
Vlastnosti textového objektu presnosť
štítokbtn_tolznačka tlačidla, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí
povrázokpresnosťnápis na tlačidle
Vlastnosti textového objektu vypočítať
štítokbtn_calcznačka tlačidla, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí
povrázokvypočítaťnápis na tlačidle

Veľkosť a poloha tlačidiel sa dá nastaviť pomocou myši.

Uloženie hlavného okna integrovanej aplikácie

V predvolenom nastavení je aplikácia vytvorená v prostredí vizuálneho programovania GUIDE MATLAB uložená v dvoch súboroch:

  1. Súbor s príponou obr. - grafické okno obsahujúce prvky rozhrania pridané do formulára,
  2. Súbor s príponou m je funkcia súboru vytvorená v prostredí GUIDE, ktoré otvára okno a obsahuje podfunkcie na spracovanie udalostí prvkov rozhrania, ktoré sa vyskytnú napríklad vtedy, keď používateľ klikne na tlačidlo. Hlavičky týchto podfunkcií a komentáre k nim sa vytvárajú automaticky.

Len v metóde vytvorenia grafického používateľského rozhrania, ktorá je uvedená v tejto časti, nie je potrebná automaticky generovaná funkcia súboru, pretože otvárame okná vytvorené v prostredí GUIDE z hlavnej funkcie a jej podfunkcií, ktoré budeme písať nezávisle. Preto by ste pred uložením aplikácie mali odmietnuť automaticky vytvoriť súbor m. Za týmto účelom vyberte položku Možnosti GUI ... v editore GUDE v ponuke Nástroje, v zobrazenom dialógovom okne Možnosti GUI vyberte prepínač Generovať iba súbor FIG a kliknite na tlačidlo OK.

poznámka
Pred uložením okien metód a tolerancií, ktorých vytvorenie je opísané neskôr, by sa mala vykonať rovnaká operácia, aby sa odmietlo automatické vytvorenie súboru m a dialógové okno sa uložilo iba do súboru s príponou obr.

Potom by ste mali uložiť vytvorené hlavné okno integrovanej aplikácie. Ak to chcete urobiť, vyberte položku Uložiť v ponuke Súbor v editore GUDE a vyberte požadovaný priečinok v zobrazenom štandardnom dialógovom okne na uloženie súboru a uložte okno do súboru integr.fig (nie je potrebné zadávať príponu).

Odporúča sa okamžite nastaviť vybraný priečinok ako aktuálny adresár MATLAB, napríklad pomocou tlačidla umiestneného naľavo od rozbaľovacieho zoznamu Aktuálny adresár na paneli nástrojov hlavného okna MATLAB.

Vytvorenie dialógového okna metódy

Ak chcete vytvoriť nové prázdne miesto pre dialógové okno s metódou, kliknite na tlačidlo Nové na paneli nástrojov editora GUIDE (alebo prejdite do ponuky New v ponuke File a na karte Create New GUI, ktorá sa objaví v zozname GUIDE Templates, vyberte riadok Blank GUI (Default) a kliknite na tlačidlo OK ).

Pred umiestnením objektov (panelov a prepínačov) nastavíme vlastnosti dialógového okna metódy našej aplikačnej aplikácie. Ak to chcete urobiť, dvakrát kliknite na prázdne okno v editore GUIDE a v okne inšpektora vlastností nastavte nasledujúce hodnoty, ktoré sú uvedené v nasledujúcej tabuľke.

Vlastnosti okna metódy
hodnotajednotkypixelyjednotky na meranie veľkosti a polohy okna
pozície[520 366 338 167]súradnice ľavého dolného rohu, šírka, výška (v merných jednotkách určených vlastnosťou Units), ak ich chcete nastaviť, kliknite na tlačidlo so znamienkom plus naľavo od názvu vlastnosti Position
názovmetódatext názvu okna
WindowStylemodálneokno sa zmení na modálne, t.j. Ak chcete pokračovať v práci s aplikáciou, musíte ju zatvoriť
štítokwin_methodznačku okna aplikácie, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí

Teraz môžete prejsť na umiestnenie v okne panela prepínačov Kvadratúrne vzorce a dva prepínače Simpson (quad) a Gauss-Lobatto (quadl). Ak chcete vytvoriť prepínací panel, použite tlačidlo skupiny tlačidiel na paneli komponentu editora GUIDE. Nasledujúca tabuľka zobrazuje hodnoty vlastností prepínača, ktoré by sa mali zmeniť v inšpektore Vlastnosti.

Kvadratúrne vzorce vlastností prepínača
hodnotanadpisKvadratúrne vzorceNázov panela
štítokpnl_methodprepínaciu značku panela, ktorá bude potrebná na získanie ukazovateľa na ňu vo funkciách spracovania udalostí

Po umiestnení prepínacieho panela a nastavení jeho vlastností umiestnite dva prepínače pomocou prepínača na panel komponentov editora GUIDE. Spínače by mali byť umiestnené presne na spínacom paneli, aby sa v bežiacej aplikácii správali harmonicky.

V nasledujúcej tabuľke sú uvedené všeobecné vlastnosti prepínačov a rôzne vlastnosti každého z nich.

Všeobecné vlastnosti výhybiek
hodnotaVeľkosť písma14veľkosť písma textu
ForegroundColormodrýfarba písma
Prepnúť vlastnosti Simpson (štvorcový)
štítokrb_quadznačka prepínača, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí
povrázokSimpson (štvorcový)bicie nápis
Prepnúť vlastnosti Gauss-Lobatto (quadl)
štítokrb_quadlznačka prepínača, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí
povrázokGauss-Lobatto (quadl)bicie nápis

Polohy a veľkosti prepínacieho panelu aj samotných prepínačov je možné zvoliť pomocou myši.

Teraz zostáva pridať dve predvoľby OK a Zrušiť do predvoľby dialógového okna metódy a uložiť ich. Tlačidlá sa pridávajú podľa popisu v časti Rozloženie prvkov rozhrania v integrálnom okne. Vlastnosti tlačidiel OK a Zrušiť v dialógovom okne Metóda sú uvedené v nasledujúcej tabuľke.

Všeobecné vlastnosti tlačidla
hodnotaVeľkosť písma14veľkosť písma textu
ForegroundColormodrýfarba písma
Tlačidlo Vlastnosti OK
štítokbtn_methodOKznačka tlačidla, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí
povrázokOKnápis na tlačidle
Tlačidlo Vlastnosti zrušiť
štítokbtn_methodCancelтэг кнопки, который понадобится для получения указателя на нее в функциях обработки событий
StringCancelнадпись на кнопке

Сохранение диалогового окна method выполняется так же, как и сохранение основного окна integral приложения. Важно не забыть отказаться от автоматического создания соответствующего окну m-файла (см. разд. Сохранение основного окна integral приложения). Сохраним диалоговое окно method в файле method.fig в том же самом каталоге, где находится файл integral.fig.

Создадим теперь последнее диалоговое окно tolerance нашего приложения.

Создание диалогового окна tolerance

Диалоговое окно tolerance создается точно таким же способом, как и диалоговое окно method (см. разд. Создание диалогового окна method). В редакторе GUIDE создается новая заготовка для диалогового окна, в инспекторе свойств его свойствам устанавливаются следующие значения, приведенные ниже в таблице

Свойства окна tolerance
hodnotaUnitspixelsединицы измерения размеров и положения окна
Position[520 366 338 167]координаты левого нижнего угла, ширина, высота (в единицах измерения, заданных свойством Units) ), для их задания следует щелкнуть по кнопке со знаком плюс слева от названия свойства Position
Nametoleranceтекст заголовка окна
WindowStylemodalокно становится модальным, т.е. для продолжения работы с приложением его требуется закрыть
Tagwin_tolтэг окна приложения, который понадобится для получения указателя на него в функциях обработки событий

Po nastavení týchto vlastností pre samotné dialógové okno tolerancie by ste mali vložiť vstupný riadok a dve tlačidlá OK a Zrušiť na prázdne miesto. Hodnoty ich vlastností sú zhrnuté v nasledujúcich tabuľkách

Všeobecné vlastnosti tlačidla
hodnotaVeľkosť písma14veľkosť písma textu
ForegroundColormodrýfarba písma
štítokbtn_tolOKznačka tlačidla, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí
povrázokOKnápis na tlačidle
štítokbtn_tolCancelznačka tlačidla, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí
povrázokzrušiťnápis na tlačidle

Vlastnosti vstupného reťazca
hodnotaVeľkosť písma14veľkosť písma textu
povrázokprázdny reťazectext na vstupnom riadku, mal by byť prázdny, t. v inšpektore Vlastnosti odstráňte hodnotu Upraviť text vlastnosti String
štítokedt_tolznačka vstupného riadku, ktorá bude potrebná na získanie ukazovateľa na funkciu spracovania udalostí

Vytvorené dialógové okno by sa malo uložiť do súboru tol.fig, pričom predtým bolo potrebné metódu ukladania ukončiť v dvoch súboroch: s príponou fig as príponou m (pozri časť Uloženie hlavného okna integrovanej aplikácie).

Teraz, keď boli vytvorené všetky tri okná intehral, ​​method a tolerance, prejdeme k programovaniu funkcií súborov so subfunkciami, aby rozhranie fungovalo.

Programovanie rozhrania

Vo všeobecnosti je táto myšlienka veľmi jednoduchá. Ak chcete na obrazovke zobraziť dialógové okno, urobíme to pomocou funkcie otvorenia (môžete tiež použiť funkciu otvorenia). Otvorená funkcia vráti ukazovateľ do dialógového okna.

Ďalej pomocou funkcie guihandles dostaneme ukazovatele na objekty v dialógovom okne (prvky rozhrania). Funkcia guihandles vracia štruktúru, ktorej názvy polí sa zhodujú so značkami objektov (ktoré boli nastavené v inšpektore vlastností pri vytváraní objektov v editore vizuálneho programovacieho prostredia GUIDE) a samotné hodnoty polí sú ukazovatele na príslušné objekty v dialógovom okne.

Ak vás štruktúry nepoznajú, môžete si prečítať stručné informácie o práci so štruktúrami v MATLABe.

Po prijatí ukazovateľov na objekty v dialógovom okne pre niektoré objekty (tlačidlá, prepínacie panely) sa zobrazia funkcie spracovania ich udalostí, ku ktorým dôjde napríklad vtedy, keď používateľ klikne na tlačidlo alebo vyberie prepínač. Samotné tieto funkcie sú predprogramované podprogramy v m-súbore s hlavnou integrálnou funkciou, ktorá otvára hlavné integračné okno našej aplikácie pomocou grafického používateľského rozhrania.

poznámka
Aby ste mohli naprogramovať udalosť, ktorá nastane napríklad po kliknutí na tlačidlo, ktorého ukazovateľ je uložený v handleles.btn (v poli btn štruktúry kľučiek), musíte vykonať nasledujúce dva kroky:

    K tomuto tlačidlu priraďte subfunkciu spracovania udalostí (keď užívateľ klikne na tlačidlo, nastane jeho udalosť spätného volania) pomocou funkcie set

Tu je btn_Callback názov podprogramu, ktorý sa má naprogramovať. Toto je možné vykonať iba vtedy, keď existuje objekt s ukazovateľom handle.btn (button), t.j. keď je otvorené dialógové okno s týmto tlačidlom.

V podfunkcii btn_Callback naprogramujte akcie, ktoré sa musia vykonať po kliknutí používateľa na tlačidlo. Záhlavie subfunkcie btn_Callback by malo vyzerať takto:

kde src je ukazovateľ na objekt, ktorého udalosť sa vykonáva, a evt je argument, ktorý sa používa na spracovanie niektorých udalostí.

Pri otváraní dialógov o metóde a tolerancii sa v nich musia urobiť rany.

Naučte sa princípy tvorby grafických aplikácií v balíku Matlab. Programovanie obsluhy udalostí spôsobené prácou s ovládacími prvkami. Programovanie udalostí a umiestňovanie prvkov do prostredia Matlab. Dialógové okná a ponuky aplikácií.

nadpisProgramovanie, počítače a kybernetika
vyhliadkaškoliaca príručka
jazykruský
Dátum bol pridaný25.03.2015
Veľkosť súboru339,5 K

Odovzdať svoju dobrú prácu do vedomostnej základne je ľahké. Použite nasledujúci formulár

Študenti, absolventi vysokých škôl, mladí vedci, ktorí vo svojich štúdiách a práci využívajú vedomostnú základňu, vám budú veľmi vďační.

Publikované dňa http://www.allbest.ru/

VYTVORENIE GRAFICKÝCH ŽIADOSTÍ V MATLABE

Metodické pokyny pre laboratórnu prácu v odbore „Automatizácia inžinierskych výpočtov“ pre študentov všetkých foriem odbornej prípravy v odbore 230100 - Informatika a počítačové inžinierstvo,

IA Selivanova, A.A. Bukin

Jekaterinburská urFU 2012

1. Princípy tvorby grafických rozhraní

Grafické aplikácie MATLAB sa skladajú z okien, ktoré obsahujú ovládacie prvky vo forme tlačidiel, zoznamov, prepínačov, príznakov, posúvačov, polí na zadávanie a výstup údajov, kontextových ponúk. Spojenia medzi oknami sa vytvárajú pomocou programového kódu. Vytvorenie grafickej aplikácie zahŕňa nasledujúce kroky:

1. Vývoj grafického užívateľského rozhrania (Graphical User Interface), ktoré spočíva v umiestnení ovládacích prvkov v okne.

2. Programovanie obsluhy udalostí spôsobené prácou s ovládacími prvkami.

Proces práce na aplikácii je postupné pridávanie funkcií a ladenie, ukončené testovaním. Konečným výsledkom je program s grafickým používateľským rozhraním obsiahnutý vo viacerých súboroch, ktorý sa spustí zadaním názvu programu do príkazového riadka MATLAB.

2. Vyhlásenie problému

Účelom tohto laboratória je študovať základné princípy tvorby grafických aplikácií v balíku MATLAB.

V procese postupného ukončovania tejto práce je potrebné vyvinúť grafickú aplikáciu v MATLABe. Príklad aplikačného okna je znázornený na obrázku 1. Usporiadanie prvkov sa môže líšiť od navrhovaného.

Obr. 1 Okno aplikácie

Spustením príkazu prejdite do interaktívneho vývojového prostredia GUI - GUIDE navádzať na príkazovom riadku. V zobrazenom okne vyberte položku prázdnyGUI na záložke vytvoriťnovýGUI a kliknite na tlačidlo OK. Otvorí sa okno editora rozhrania.

Obr. 2 Okno Editora rozhraní

Editor používateľského rozhrania obsahuje:

* panel nástrojov na správu aplikácií,

* prázdne okno aplikácie s tlačenou mriežkou,

* zvislé a vodorovné pravítka,

* panel nástrojov na pridávanie prvkov rozhrania do okna aplikácie.

Editor aplikácií MATLAB vám umožňuje umiestňovať rôzne prvky rozhrania. Ak to chcete urobiť, kliknite na príslušné tlačidlo na paneli nástrojov v ľavej časti okna editora rozhrania a vyberte vybraný objekt do formulára.

Aplikácia je momentálne v režime úprav. Z okna je možné pomocou tlačidla odstrániť akýkoľvek objekt vymazať, po predchádzajúcom výbere. Aplikácia sa spustí pomocou tlačidla beh buď výberom príslušnej položky ponuky náradie, Po spustení program ponúkne uloženie projektu. Vyberte názov súboru, ktorý chcete uložiť, napríklad mygui.figaa adresár, ktorý chcete uložiť, potom kliknite na Uložiť, Aplikácia sa spustí v samostatnom okne s predvoleným názvom.. Používateľ má prístup k ovládacím prvkom umiestneným v aplikácii.

3.1 Programovanie udalostí

Grafická aplikácia v MATLABe je uložená v dvoch súboroch s príponami.figa a.m, prvý obsahuje popis tvaru okna a druhý obsahuje programový kód. Pridaním prvku rozhrania do editora sa automaticky vygeneruje šablóna obsluhy udalosti (napríklad obsluha kliknutia na tlačidlo) v súbore s programovým kódom.

Vytvorme aplikáciu, ktorej okno obsahuje výstupné pole pre grafické prvky (osi), ktoré obsahujú súradnicové osi a dve tlačidlá (tlačiťgombík), určené na vykreslenie funkcie a vyčistenie poľa.

Umiestnite prvé tlačidlo a objekt na formulár osi ako je znázornené na obr. 3. Tlačidlo automaticky zobrazí nápis tlačiťgombík. Každý grafický prvok má množinu vlastností, ktoré určujú jeho vzhľad a správanie. Grafický názov štítok umožňuje rozlišovať medzi prvkami rozhrania. Tlačidlo by ste mali pomenovať podľa jeho funkčnosti.

Obr. 3 Umiestnenie komponentov

Kliknite pravým tlačidlom myši na tlačidlo a v otvorenom zozname zavolajte editora nehnuteľností vlastnosťinšpektoralebo dvakrát kliknite na ľavé tlačidlo myši.

Obr. 4 Okno Inšpektor nehnuteľností

V otvorenom okne editora vlastností zmeňte hodnotu štítok na btnPlot, Tento názov sa následne použije na prístup k vlastnostiam tlačidla počas programovania. Môžete si všimnúť, že názov je uvedený v súlade s kontrolou a jej budúcou funkciou. (gombík- gombík sprisahania - zostaviť). Podobne dajte predmet osi krstné meno axMain.

Keď používateľ klikne na tlačidlo v spustenej aplikácii, zavolá sa obsluha udalosti, ktorej meno sa vytvorí z názvu prvku, podčiarknutia a slova callback (Review). Teraz neobsahuje operátory. Pred prístupom k obsluhe je vhodné zadať názvy prvkov, aby ste nemuseli v budúcnosti meniť názov generovanej funkcie. Ak chcete vyvolať obsluhu, kliknite pravým tlačidlom myši na rozbaľovací zoznam pre btnPlotvyberte v ňom vyhliadkaspätné volania a bežať callback, otvorte obslužný program udalosti, ako je uvedené v zozname 1.

Spracovanie udalosti s tlačidlom s menom btnPlot.

funkcia btnPlot_Callback (hObject, eventdata, handle)

drawPlot (x, y, rukoväte),

Vytvorenie funkcie drawPlot, v rozhraní MATLAB vyberte položku ponuky súborpotom rozbaľovací zoznam nový vyberte položku skript, Vytvorený funkčný súbor naformátujte v súlade so zoznamom 2 a uložte do adresára so súborom mygui.m.

Funkcia vykreslenia volaná z btnPlot.

funkcia drawPlot (xVector, yVector, handle)

newPlot = plot (xVector, yVector),

setappdata (handles.axMain, 'plot', newPlot),

Pre funkcie changeMarker a changeColor vytvoriť prázdne skript súbory (útržky). Uložte oba súbory a spustite aplikáciu z editora aplikácie. Stlačenie tlačidla v bežiacej aplikácii by malo viesť k zobrazeniu funkčného grafu v objekte axMain, Zatvorte okno aplikácie a pokračujte v práci v editore formulárov. Pridajte druhé tlačidlo s názvom btnCLear, Prejdite na funkciu spracovania udalostí druhého tlačidla. Uskutočnite hovor funkcie plotClearDialog, ako je uvedené v zozname 4.

Spracovanie udalosti s tlačidlom s menom btnCLear.

funkcia btnClear_Callback (hObject, eventdata, handle)

Uložiť funkciu plotClearDialog v rovnakom mene skript súboru, neskôr ho upravíme.

Funkcia čistenia plánu, vyvolaná z btnCLear.

funkcia plotClearDialog (hObject, handle)

Spustite aplikáciu a uistite sa, že kliknutím na prvé tlačidlo sa zobrazí funkčný graf a druhé slúži na vymazanie grafu.

3.2 Návrh rozhrania

3.2.1 Správa vlastností objektov

Vývoj aplikácií zahŕňa zmenu vlastností objektov, ktoré dostanú predvolene, keď sú umiestnené vo formulári. Niektoré vlastnosti, napríklad nápis na tlačidle alebo jeho veľkosť, sa nastavujú pri vytváraní objektu v režime úprav. Všetky vlastnosti je možné v bežiacej aplikácii programovo zmeniť.

3.2.2 Návrh formy

Pokračujte v práci na aplikácii a zmeňte štítky na tlačidlách, napríklad na „Zostaviť » a „čistý". Tlačidlá majú vlastnosť povrázok, hodnota, ktorú prijíma, je reťazec zobrazený na tlačidle. Menovky tlačidiel v inšpektore zmeňte tak, ako je to opísané vyššie. Spustite aplikáciu.

3.2.3 Zmena vlastností z programového kódu

Vlastnosti objektov je možné počas aplikácie nastavovať programovo. Vylepšite aplikáciu tak, aby pri štarte iba „Zostaviť »a po kliknutí na ikonu „Zostaviť » zobrazí sa graf a zostane nedostupný. Keď stlačíte, naopakčistý».

Tlačidlo zámok závisí od vlastníctva umožniť, s hodnotou na k dispozícii na preč no. Nastavenie vlastností objektov v programe sa vykonáva pomocou funkcie sada.

funkcie sada s tromi parametrami - odkaz na objekt, ktorého vlastnosť chcete zmeniť, názov vlastnosti a jej hodnota. Poslednými dvoma argumentmi sú apostrofy. argumenty hObject a rukoväte funkcie popisovača obsahujú ukazovatele. hObject uloží sa ukazovateľ na objekt, ktorého udalosť sa práve spracováva, a rukoväte je vektor ukazovateľov na všetky objekty vo formulári. Napríklad rukoväte.btnsprisahania je ukazovateľ na tlačidlo btnPlot, Nastaviť v editore vlastností pre „čistý"vlastnosť umožniť rovný preč, potom program upravte tak, ako je to uvedené v zozname 5.

Spracovanie stavov tlačidiel.

funkcia btnPlot_Callback (hObject, eventdata, handle)

set (hObject, 'Enable', 'off'),

množina (handles.btnClear, 'Enable', 'on'),

drawPlot (x, y, rukoväte),

funkcia btnClear_Callback (hObject, eventdata, handle)

set (hObject, 'Enable', 'off'),

set (handles.btnPlot, 'Enable', 'on'),

Vytvorte výhonok pre funkciu plotDialog, Nezabudnite ich uložiť ako pred ďalším spustením aplikácie.m súbor tak.figa súboru.

3.3 práca na žiadosti

3.3.1 Spustenie aplikácie

Spustenie aplikácie sa vykonáva nielen z editora aplikácií. Na spustenie aplikácie stačí na príkazovom riadku zadať jej názov ako príkaz >> mygui

Adresár s aplikáciou musí byť obsiahnutý vo vyhľadávacích cestách MATLAB alebo musí byť aktuálny.

3.3.2 Návrh rozhrania

Často sa vyžaduje, aby mierny pohyb myši spôsobil zmenu polohy objektu určitým pevným krokom. Mriežka editora aplikácií umožňuje takýto diskrétny pohyb. Výber položky mriežkaapravítka menu náradie vedie k dialógovému oknu.

flags showpravítka a showmriežka zodpovedajú zobrazeniu pravítka a mriežky v editore aplikácií a rozbaľovaciemu zoznamu mriežkaveľkosť umožňuje vybrať veľkosť buniek oka. Minimálna povolená veľkosť je 10 pixelov, umožňuje presne umiestniť ovládacie prvky v okne aplikácie. Keď je nastavený príznak, dochádza k naviazaniu pohybu na čiary mriežky prasknutienamriežka, Umožňuje vám umiestňovať objekty a meniť ich veľkosť presne pozdĺž čiary mriežky.

3.4 Programovanie prvkov používateľského rozhrania

3.4.1 Vlajky a rámy

flags checkbox Používa sa na zmenu hodnôt s dvoma možnými hodnotami. Pomocou panela nástrojov pridajte dva príznaky a nastavte hodnoty povrázok pre nich mriežka podľaX a mriežka podľaY. Tieto príznaky by mali nastavovať zobrazenie príslušnej mriežky na mape.

Zvyčajne je niekoľko ovládacích prvkov s podobným účelom zoskupených v rámci. panel s menom "Grid", Resize Element axMainuvoľnenie priestoru vpravo pre rám. Nakreslite rámček z okna aplikácie pomocou príslušného tlačidla. Do rámu pridajte dve príznaky. Vysvetlivky umiestnite vedľa vlajok a nastavte ich hodnoty štítok rovný chbxGridX a chbxGridY, potom vykonajte potrebné zmeny kódu, ako je uvedené v zozname 6.

Spracovanie udalostí zobrazenia mriežky.

funkcia chbxGridX_Callback (hObject, eventdata, handle)

množina (handles.axMain, 'XGrid', mapValue (hObject, 'Value')),

funkcia chbxGridY_Callback (hObject, eventdata, handle)

množina (handles.axMain, 'YGrid', mapValue (hObject, 'Value')),

Prevod booleovských hodnôt na reťazcové hodnoty.

function retval = mapValue (hObject, property)

ak dostaneme (hObject, property)

Zmeny v konštrukcii závisia od dostupnosti siete.

množina (handles.axMain, 'XGrid', mapValue (handles.chbxGridX, 'Value')),

množina (handles.axMain, 'YGrid', mapValue (handles.chbxGridY, 'Value')),

prepínače rádiogombík poskytnúť používateľovi možnosť meniť hodnoty s niekoľkými možnými hodnotami. Vždy je nastavený iba jeden prepínač zo skupiny. Pomocou nich napríklad môžete implementovať prepínacie značky uzlových hodnôt do štvorcov alebo kružníc.

Pridajte nový panel do okna aplikácie gombíkskupina (organizuje prechod na rádiogombík sami), zadajte značku MarkGroupNázov "Značky", nasaďte na ňu tri prepínače s názvami rbMarkCirC, rbMarkSq, rbMarkNonea nápisy - Kruhové značky, Štvorcové značky, „Bez značiek“ resp.

Stav prepínača je určený jeho vlastnosťou hodnota: ak hodnota rovná jednej, potom je spínač zapnutý. Pre vlastnosť nastavte editor vlastností na 1 hodnota prepínač označený ako „žiadne značky“, potom sa zapne pri spustení programu.

Odkazy na prepínače (logicky zoskupené) a ich hodnoty uchovávame v kontexte formulára v zozname 7.

Nastavte možné hodnoty.

function mygui_OpeningFcn (hObject, eventdata, handle, varargin)

optionsList =,

optionsValues ​​=,

setappdata (hObject, 'optionsList', optionsList),

setappdata (hObject, 'optionsValues', optionsValues),

funkcia MarkGroup_SelectionChangeFcn (hObject, eventdata, handle)

Funkcia zmení značku podľa zvoleného prepínača.

thePlot = getappdata (handles.axMain, 'plot'),

markers = getappdata (handles.figure1, 'optionsValues'),

množina (značka, značka, značky (getMarkerValue (rukoväte)))

Funkcia vráti aktuálnu značku.

function markerValue = getMarkerValue (handle)

markerValue = getSelectedOption (getappdata (handles.figure1, 'optionsList')),

Funkcia vráti aktuálny prepínač v zadanej skupine.

index funkcie = getSelectedOption (hObjectList)

pre počítadlo = (1: dĺžka (hObjectList))

ak get (hObjectList (counter), 'value') == 1

Pomocou rozbaľovacieho zoznamu môžete vybrať farbu čiary grafu. Prejdite do režimu úprav a pridajte rozbaľovací zoznam pop-horeMenu so značkou pmColorktorých prvky sú reťazce "Blue", "Red", "Zelená" (pole povrázok v režime viacerých riadkov).

Spustite aplikáciu a overte, či rozbaľovací zoznam obsahuje požadované položky. Výber rôznych riadkov ešte nespôsobí zmenu farby linky - musíte naprogramovať udalosť callback rozbaľovací zoznam.

Uložte vektor s kvetmi v kontexte formulára.

funkcia GuiProj_OpeningFcn (hObject, eventdata, handle, varargin)

setappdata (hObject, 'colours', colours),

Zavolajte ChangeColor do obsluhy zoznamu.

funkcia pmColor_Callback (hObject, eventdata, handle)

Zmeňte farbu čiary.

thePlot = getappdata (handles.axMain, 'plot'),

colors = getappdata (handles.figure1, 'colours'),

set (thelot, 'color', colours (get (handles.pmColor, 'value')))

3.4.4 Posuvné lišty

Pomocou posúvača môžete napríklad nastaviť hrúbku čiary grafu. Pridajte posuvnú lištu. slider v okne aplikácie a zadajte názov scrWidth, Text prúžok "Hrúbka čiary".

Teraz musíte určiť súvislosť medzi pozíciou jazdca pruhu a číselnou hodnotou vlastnosti hodnota.

Vykonajte nasledujúce nastavenia z editora vlastností:

1. In mach zadajte desať a dovnútra min - jednotka. Vlastnosti mach a min rolovacie pásma sú zodpovedné za hranice hodnôt zaznamenaných v hodnota pri pohybe posúvača.

2. Určite počiatočnú polohu posúvača pásov. Нажмите кнопку в строке с названием свойства и в появившемся окне Value измените значение на единицу.

3. Обратитесь к свойству SliderStep. Его значением является вектор из двух компонентов, первый из которых определяет относительное изменение Value при нажатии на кнопки со стрелками полосы скроллинга, а второй - при перетаскивании бегунка мышью. Следует установить значение [0.1 0.2] и нажатие на кнопки полосы изменит Value на десять процентов, а щелчок мыши справа или слева от бегунка на двадцать. Раскройте строку SliderStep щелчком мыши по знаку плюс слева от названия свойства и в появившихся строках х a у введите 0.1 и 0.2.

Изменение толщины линии.

function scrWidth_Callback(hObject, eventdata, handles)

thePlot = getappdata(handles.axMain, 'plot'),

set(thePlot, 'LineWidth', round(get(hObject, 'value')))

Изменение толщины линии при построении.

set(newPlot, 'LineWidth', round(get(handles.scrWidth, 'value')))

В данном случае реализован перехват исключительных ситуаций с помощью связки try a catch (например, когда Plot еще не инициализирован). При этом catch Zostáva prázdna, pretože nie je potrebné podniknúť žiadne kroky, zmena smeru jednoducho nebude fungovať.

Pozrite si video: MATLAB INTRODUCTION IN HINDI (November 2019).