Uživatelská rozhraní 10. cvičení. Martin Němec A

Podobné dokumenty
Pokročilé programování v jazyce C pro chemiky (C3220) Knihovna Qt část 2

Úvod 13 O čem je tato kniha? Pro koho je tato kniha? Jak studovat tuto knihu? Poděkování 16 Zpětná vazba od čtenářů Zdrojové kódy ke knize Errata 17

Multiplatformní GUI knihovna

Vývoj multiplatformní aplikace v Qt

Multiplatformní GUI toolkity

Programování v C++ 2, 4. cvičení

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Programování v C++ 3, 3. cvičení

Uživatelská rozhraní cvičení

Programování v C++ 1, 5. cvičení

Komponenty v.net. Obsah přednášky

PREPROCESOR POKRAČOVÁNÍ

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Software Operaèní systém autorské dílo licenci multilicenci Aplikaèní software Komerèní programy upgrade OEM software Demoverze a zku ební verze

Software Operaèní systém autorské dílo licenci multilicenci Aplikaèní software Komerèní programy upgrade OEM software Demoverze a zku ební verze

Software Operaèní systém autorské dílo licenci multilicenci Aplikaèní software Komerèní programy upgrade OEM software Demoverze a zku ební verze

Bc. Martin Majer, AiP Beroun s.r.o.

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

TÉMATICKÝ OKRUH Softwarové inženýrství

Specifikace softwarového díla & Časový plán implementace. pro. MEF Editor

Matematika v programovacích

Cvičení z programování v C++ ZS 2016/2017 Přemysl Čech

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Tvorba informačních systémů

6.4.1 Základní charakteristika

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

KNIHOVNA QT4, PROSTŘEDÍ QTCREATOR A MOŽNOSTI JEJICH VYUŽITÍ

RMI - Distribuované objekty v Javě

7 Jazyk UML (Unified Modeling Language)

Aplikace s grafickým uživatelským rozhraním

Lekce 23 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Objektové programování

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Šablony, kontejnery a iterátory

Softwarové komponenty a Internet

1. Úvod 2. Historie 3. Qt Creator & qmake 4. Rychlý úvod do Qt 5. Základní koncepty Qt 6. Průvodce prvky GUI 7. Projekty

Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

Administrace webu Postup při práci

7 Jazyk UML (Unified Modeling Language)

Facade. Známý jako. Účel. Motivace. Facade, Fasáda

IRAE 07/08 Přednáška č. 7. Začátek (head)

8 Třídy, objekty, metody, předávání argumentů metod

GUI. JavaFX. Java UI, letní semestr 2017/2018 1

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************

43 HTML šablony. Záložka Šablony v systému

HP-2000E UŽIVATELSKÝ MANUÁL

PROGRAMOVÁNÍ V C++ CVIČENÍ

UJO Framework. revoluční architektura beans. verze

Fakulta stavební. Grafické rozhraní pro GNU Sqltutor

Bakalářská práce Migrace grafického rozhraní z MAF2 na MAF3

Knihovna QT4 a moºnosti jejího vyuºití

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1.

Reliance 3 design OBSAH

Vytváření a použití knihoven tříd

5 Rekurze a zásobník. Rekurzivní volání metody

State. Známý jako. Účel. Použitelnost. Stav, Object for States. umožňuje objektu měnit svoje chování v závislosti na stavu objekt mění svou třídu

Kód, který se nebude často měnit

KMI / TMA Tvorba mobilních aplikací

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

Rozsáhlé programy = projekty

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Minerva TPV+ TPV funkcionalita v QAD. David Pochman Senior konzultant

První kapitola úvod do problematiky

Dědičnost. seskupování tříd do hierarchie. potomek získá všechny vlastnosti a metody. provádí se pomocí dvojtečky za názvem třídy.

LEKCE 4. Design aplikace, rozmístění a polohování prvků. Rozmístění prvků prezentačního rozhraní

Uživatelský manuál. Připojení přístroje SDT170 k aplikaci DDS2000

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

MULTIPLATFORMNÍ PŘEHRÁVAČ ZVUKOVÝCH SIGNÁLŮ

Parametrizované třídy Generics generické třídy. JDK zavádí mimo jiné tzv. parametrizované třídy - generics

Základní informace. Operační systém (OS)

3 KTE / ZPE Informační technologie

Uživatelský manuál aplikace. Dental MAXweb

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

7. Datové typy v Javě

Abstraktní datové typy

Android 100% Java telefon. Petr Musil

OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC

Stavba operačního systému

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Dědění, polymorfismus

Sada 2 Microsoft Word 2007

Programování v C++ 2, 7. cvičení

NOVINKY v PROGRAMU DOCHÁZKA ADS

Výčtový typ strana 67

PB161 Programování v jazyce C++ Přednáška 9

Karel Bittner HUMUSOFT s.r.o. HUMUSOFT s.r.o.

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

20. Projekt Domácí mediotéka

Cvičení č. 3. Sdílené prostředky a synchronizace Program Banka. 4 body

QAD Business Intelligence

Abstraktní datové typy: zásobník

Transkript:

Uživatelská rozhraní 10. cvičení Martin Němec A1047 +420 597 324 438

Úvod do Qt GUI toolkit Qt (cute) Samostatná knihovna společnosti TrollTech. Podpora platforem Windows, Linux, Mac. Vzhled i chování prvků je implementováno v C++. Podpora pro datové přenosy (Cut/Copy/Paste, Drag & Drop).

C++ kompiler, gcc, MSVC Prerekvizity http://java.sun.com/javase/downloads/index.jsp Manuály Specifikace API: http://doc.trolltech.com Tutoriály: http://doc.trolltech.com Editory MS Visual Studio, PSPad,

Základní komponenty QApplication, QWidget Okno aplikace, obsahuje standardní prvky, komunikuje s OS. Kontejnerem pro další komponenty (např. QPushButton, QLabel, QLineEdit) je buď Qapplication nebo námi vytvořená třída, která dědí z QWidget.

Další komponenty Atomické komponenty: QLabel, QPushButton, QButtonGroup, QLineEdit, QListBox, Umožňují interakci s uživatelem a zobrazují informace.

Postup při použití obecné komponenty (I) 1. Instanciace. QPushButton *btn = new QPushButton( QString( Prevod ), this ); 2. Konfigurace. btn.settext( QString( TLAČÍTKO ) ); 3. Jedná-li se o kontejner, vložení potomků. 4. Nejedná-li se o QApplication, vložení komponenty do layoutu (např. QHBoxLayout, QGridLayout). box->addwidget(btn);

Postup při použití obecné komponenty (II) 5. Registrace posluchče. V definici třídy: Q_OBJECT private slots: void clickprevodbtn(); V implementaci třídy: connect( btnprevod, SIGNAL(clicked()), this, SLOT(clickPrevodBtn()) );

Layout Management LM ovládají rozmístění komponent v rámci kontejneru. Horizontal Layout Vertical Layout Grid Layout

Horizontal Layout Vkládá komponenty na řádek zleva doprava. QBoxLayout *hbox = new QHBoxLayout( this ); QPushButton btn1, btn2, btn3; hbox->addwidget( &btn1 ); hbox->addwidget( &btn2 ); hbox->addwidget( &btn3 );

Vertical Layout Vkládá komponenty do sloupce shora dolů. QBoxLayout *vbox = new QVBoxLayout( this ); QPushButton btn1, btn2, btn3; vbox->addwidget( &btn1 ); vbox->addwidget( &btn2 ); vbox->addwidget( &btn3 );

Grid Layout Umísťuje komponenty do buněk mřížky obdobně jako. Řádky i sloupce mohou mít různou velikost. Komponenta může zabírat více buněk (rowspan, columnspan). QGridLayout *top = new QGridLayout( this, 2, 2 ); top->addwidget( btn1, 0, 0 );

Praktická úloha Pro cvičení použijeme šablonu, na které se budeme dále seznamovat s komponentami zahrnutými v Qt API. Design si můžete upravit libovolně podle sebe. Pokuste se vyzkoušet základní prvky, včetně nastavení jejich vlastností.

Použití třídy QWidget class MyWidget: public QWidget { Q_OBJECT QLineEdit *ined; public: MyWidget( QWidget *parent=0, const char *name=0 ); private slots: }; void clickprevodbtn();

Základní operace v konstruktoru MyWidget::MyWidget( QWidget *parent, const char *name ) : QWidget( parent, name ) { QBoxLayout *vbox = new QVBoxLayout( this ); QBoxLayout *hbox = new QHBoxLayout( vbox, 5 ); QBoxLayout *levy = new QVBoxLayout( hbox ); QString *boxname = new QString( "Smer prevodu" ); QButtonGroup *smerfr = new QButtonGroup( 2, Horizontal, *boxname, this, "smerfr" );

Zpracování událostí MyWidget::MyWidget( QWidget *parent, const char *name ) : QWidget( parent, name ) { } connect(btnprevod, SIGNAL(clicked()), this, SLOT(clickPrevodBtn())); void MyWidget::clickPrevodBtn() { }

Dopracovat výpočet a vzhled. Děkuji za pozornost.