13.11.2009 Tvorba uživatelských rozhraní Knihovny pro tvorbu GUI Jozef Mlích – Department of Computer Graphics and Multimedia Faculty of Information Technology,

Slides:



Advertisements
Podobné prezentace
© 2000 VEMA počítače a projektování spol. s r. o..
Advertisements

Ing. Jan Mittner MySQL Workbench 2. Základy práce s databází 3. Subversion 2.
Tutoriál EDS možnosti přizpůsobení Pro administrátory support.ebsco.com.
Modelování procesů pomocí workflow
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Softwarový systém DYNAST
C# pro začátečníky Mgr. Jaromír Osčádal
Programování v C++ Cvičení.
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
Adobe Dreamweaver CS4 Ing. Martin Dosedla.
Grafická knihovna wxWidgets Bc. Vojtěch Kusý 128PGC3 - Počítačová grafika a CAD ČVUT v Praze, Fakulta stavební.
Praha6.cz Nové trendy v e-publishingu Statické stránky, mapa stránek, menu a fulltextové vyhledávání.
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
Lestes C++ compiler. Obsah 1. Úvod 2. Architektura 3. Implementace 4. Framework 5. Závěr.
Vývoj aplikací pro SharePoint
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
Operační systémy.
Ing. Jan Mittner Základy MVC 2. Rozšíření layoutu 3. helpery 4. Bootstrap a přepis URL adres 2.
Roman Valeš projekt AVT. Cíl práce Obeznámení s programovacím jazykem Java Práce s vývojovými nástroji Hierarchie kódu Androidu Vytvoření Android aplikace.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Maturitní okruh 22: Úvod do HTML. Značkovací a klasické jazyky Klasické: převládá strukturovaný text (programovací kód), skripty jsou prováděny na straně.
Dokumentace objektů a zveřejnění funkcí
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Dílna Caché II. CSP pro pokročilé Tomáš Vaverka. Zdroje HTML Tag Reference v sekci Reference Material v dokumentaci Caché HTML Tag Reference v sekci Reference.
Návrhový vzor Factory v JAVA API Martin Kot Katedra informatiky VŠB – Technická univerzita Ostrava
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Dokumentace informačního systému
Copyright (C) 2000 Vema, a. s.1 V3 klient Michal Máčel Provozní integrace G2, HR/Win a internetu.
CZ.1.07/1.4.00/ VY_32_INOVACE_168_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
Richard Lipka Department of Computer Science and Engineering Faculty of Applied Sciences University of West Bohemia, Pilsen, Czech Republic 1.
Windows Presentation Foundation
8 ZÓN 16 KLÁVESNIC 32 TYPŮ ZÓN 6 VÝSTUPŮ 10 UŽIVATELSKÝCH KÓDŮ 100 UDÁLOSTÍ V HISTORII DETEKTORY KLÁVESNICE G8.
POWER POINT 1 Základní pojmy Power Point - základní pojmy.
Databázové modelování
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Databáze velké množství dat pevně dané struktury
Podnikání na Internetu internet - zdroj informací Letní semestr 2005 Jana Holá III.
OPERAČNÍ SYSTÉMY.
Windows Presentation Foundation Ovládací prvky. Ovládací prvky Všechny standardní prvky jsou dostupné a některé nové Třídy jsou společné pro WPF System.Windows.Controls,
14. června 2004Michal Ševčenko Architektura softwarového systému DYNAST Michal Ševčenko VIC ČVUT.
Visual Basic - programování
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
31/07/20151 Uživatelské rozhraní (13) Pro standardní akce používat standardní dia- logová okna: –otevření souboru – OpenFileDialog –uložení souboru – SaveFileDialog.
Uživatelská rozhraní Cvičení 12a Martin Němec A
Uživatelská rozhraní Uživatelská rozhraní. knihovna Qt Trolltech (1994) v Oslu (Norsko) vytváří grafické uživatelské rozhraní (GUI) pro C++ multi-platformová.
Rezervační systém v prostředí XUL Zdeněk Novák, Petr Ondrejka.
GRASS GIS Alternativní GIS – volně dostupné programy a data.
Klient pro správu databází MySQL 1 Klient pro správu databází MySQL Zbyněk Munzar České vysoké učení technické v Praze Fakulta elektrotechnická.
Databáze MS ACCESS 2010.
Využití sestavy Zobrazení a typy Části sestavy Vytvoření sestavy Ovládací prvky.
Architektura X Windows ● Model klient-server ● X display (displej)– komplexní zařízení s vlastními výstupními (obrazovka) a vstupními zařízeními (myš,
KDE – Lukáš Tinkl - KDE – desktop pro uživatele i vývojáře Lukáš Tinkl
ORSOFT RADNICE OPEN – ÚVODNÍ SEZNÁMENÍ Petra Hoffmanová.
Zahradnická fakulta v Lednici S4U – Seminář o Univerzitním informačním systému 23. – 25. dubna 2008 S 4 U – Seminář o Univerzitním informačním systému.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
FTP-SSL FTP-SSL Martin Dušek Martin Fúsek Josef Vlček.
GTK+ - Úvod ● ● Multiplatformní toolkit pro tvorbu GUI, nabýzí komplexní sadu widgetů pro projekty libovolné velikosti ● Free software,
NetBeans Plugin.  Echo2 web framework (Ajax, Java)  NetBeans IDE (modularita, Swing designer)  Vizuální design uživatelského rozhraní (WYSIWYG)  Drag.
Databáze MS ACCESS 2010.
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
Počítače a programování 2
Vypracoval / Roman Málek
Programování mikropočítačů Platforma Arduino
PRVNÍ Projekt, struktura projektu
C# WPF.
Vlastnosti souborů Jaroslava Černá.
Vytvořil Jaroslav Kudr pro OATGM
Transkript prezentace:

Tvorba uživatelských rozhraní Knihovny pro tvorbu GUI Jozef Mlích – Department of Computer Graphics and Multimedia Faculty of Information Technology, Brno University of Technology Božetěchova 2, Brno, Czech Republic

ITU: Knihovny pro tvorbu GUI | 2 Agenda wxWidgets GTK Qt

ITU: Knihovny pro tvorbu GUI | 3 wxWidgets – features Cross-platform ability Open source Documentation and samples Wide range of control and window classes Powerful event system Printing facilities Debugging facilities Compiler support Database functionality Document/view classes Drag and drop Easy UI update Configuration files Multithreading Network programming HTML classes OpenGL integration Diagramming application support OLE automation support Multiple language support A user community

ITU: Knihovny pro tvorbu GUI | 4 wxWidgets Julian Smart, University of Edinburgh – první uvolněná verze multiplatformní framework pro návrh GUI – Windows, Linux, *NIX, MacOS využívatí nativního vzhledu systému návrh vychází z MFC – vše se chová jako třída různé porty a binding do rozličných jazyků – wxPython, wxPerl, wxX11, wxGTK… vývojové prostředí pod MS Windows – wxDevCpp

ITU: Knihovny pro tvorbu GUI | 5 wxWidgets – nasazení Audacity AVG Code::Blocks RapidSVN Jedno z GUI pro VLC BitTorrent Filezilla

ITU: Knihovny pro tvorbu GUI | 6 wxWidgets – hierarchie tříd

ITU: Knihovny pro tvorbu GUI | 7 wxWidgets třídy na nižší úrovni pro nevizuální objekty – wxHashMap, wxString, wxList, wxPathList a mnohé další podpora RTTI – meta-informace o třídách (wxClassInfo) vnitřní počítání referencí některých objektů podpora unicode (závisí na parametrech při kompilaci samotné knihovny) – makro wxT pro převod znaků do správné vnitřní reprezentace RichText editační prvky, regulární výrazy, apod.

ITU: Knihovny pro tvorbu GUI | 8 wxWidgets možnost lokalizace aplikací pomocí makra _T() nebo _() – podpora pro hypertextovou nápovědu –.HLP soubory (wxHelpController) tvorba vícevláknových aplikací – wxThread, wxMutex, wxCriticalSection, wxCondition síťové aplikace – sockety, http/ftp, wxURL zobrazení základního HTML – wxHTML podpora pro připojení k databázi – wxDb, wxODBC...

ITU: Knihovny pro tvorbu GUI | 9 wxWidgets – wxString efektivní, optimalizované použití, podpora unicode, velké množství dostupných metod (AfterFirst, BeforeLast, operator<< popř. Printf, Format...) – wxString str1(”test1”); – wxString str2(”test2”); – wxString str3(” ”); str1.Upper(); // převod řetězce na velké znaky str1.Cmp(str2); // porovnání dvou řetězců (case sensitive) str1.Freq(”e”); // počet znaků 'e' v řetězci str3.ToDouble(&dbl); // převod řetězce na číslo str.Trim(); odstranění přebytečných bílých znaků wxString::Format(wxT(”%s=%d\n”), str1.c_str(), dbl);

ITU: Knihovny pro tvorbu GUI | 10 wxWidgets – pozicování vlastní XML resource soubory (XRC) – značkovací jazyk pro definici uživatelského rozhraní layout systém rozložení prvků – nevyužívá se fixního rozložení, ale tzv. Sizers uživatelské rozhraní mění své rozložení a velikost prvků podle předem specifikovaných podmínek – snadné přizpůsobení nastavení uživatele více typů rozložení, podle použitého typu kontejneru - wxGridSizer, wxBoxSizer a další možnost uložení návrhu GUI do speciálního souboru zdrojů

ITU: Knihovny pro tvorbu GUI | 11 wxWidgets – příklad Co vidíme – události – _T() – layouty

ITU: Knihovny pro tvorbu GUI | 12 GTK Stability Cross Platform Language Bindings Mobile Accommodating Interfaces – Buttons, menus, combo boxes, layouts, trees, lists Foundations – Main loop, thread support, dynamic loading modules, lists, arrays, lexical scanner, base64

ITU: Knihovny pro tvorbu GUI | 13 GTK – nasazení Gnome Inkscape GIMP (The Gimp Toolkit == GTK) Firefox Pidgin

ITU: Knihovny pro tvorbu GUI | 14 GTK – struktura GLib - pomocné funkce a datové struktury GDK - wrapper funkcí Xlib, popř. jiného grafického systému GObject - generický typový a objektový systém, signály GTK+ - jádro toolkitu GTK+ a definice widgetů Pango - zobrazování textu ATK - Accessibility Toolkit, zpřístupnění pro postižené

ITU: Knihovny pro tvorbu GUI | 15 GTK Aplikace je tvořena stromem instancí objektů a běh je zajištěn doručováním událostí do odpovídajících objektů. aplikace obsahuje: – inicializaci knihovny, – sestavení stromu instancí objektů, – registraci akčních funkcí, – realizace a mapování – nastartování aplikační smyčky inicializace aplikace – gtk_init(argc, argv);

ITU: Knihovny pro tvorbu GUI | 16 GTK vytváření objektů – knihovna zavádí pojem grafický objekt (widget) – chování a styl objektu je definováno třídou objektu – kód třídy objektu autonomně zpracovává většinu operací – grafický objekt je identifikován datovým typem GtkWidget – pro každou třídu je definována funkce pro vytvoření instance – základem všech grafických objektů je třída GtkWidgetClass

ITU: Knihovny pro tvorbu GUI | 17 GTK kontejnery – instance objektu, do kterého je možné vkládat další objekty a umožňuje např. jejich pozicování – přesná funkce je určena typem kontejneru – gtk_container_add(GTK_CONTAINER(main), button);

ITU: Knihovny pro tvorbu GUI | 18 GTK – vlastnosti objektů pomocí funkcí definováných pro každou třídu – gtk_třída_get_xxx(...);, gtk_třída_set_xxx(...); nebo pomocí obecných funkcí – g_object_get(...);,g_object_set(...); každá třída objektů má v manuálu seznam všech vlastností, typů těchto vlastností a funkcí pro zjišťování a nastavování těchto vlastností gtk_widget_set_name(main, "main"); gtk_container_set_border_width(GTK_CONTAINER(main), 10);

ITU: Knihovny pro tvorbu GUI | 19 GTK – zpětné volání signály (signal) – zpráva vyslaná instancí GtkObject jako reakce na určitý prvek v prostředí události (event) – nepřetržitý tok zpráv ohledně změn prostředí ve spodní vrstvě zobrazovacího systému

ITU: Knihovny pro tvorbu GUI | 20 GTK – zpětné volání registrace je v obou případech stejná – g_signal_connect(G_OBJECT(tlacitko), "clicked", G_CALLBACK(click_action), user_value); – proměnná typu GtkWidget – jméno signálu v řetězcové podobě – adresa funkce odpovídajícího typu – přetypování G_CALLBACK() – uživatelská hodnota přetypovaná na gpointer funkce pro signál – void click_action(GtkWidget *widget, gpointer user_data); funkce pro událost – void delete_action(GtkWidget *widget, GdkEvent *event, gpointer user_data);

ITU: Knihovny pro tvorbu GUI | 21 GTK – podmínky pro zobrazení widgetu realizace a mapování – gtk_widget_show(...); – gtk_widget_show_all(...); – gtk_widget_hide(...); správa – po vytvoření jsou objekty vloženy nikam, jsou tedy nespravované, – po vložení do kontejneru se stanou spravovanými – gtk_widget_show(button); – gtk_widget_show(main); nastartování aplikační smyčky – hlavní cyklus je skryt ve funkci – gtk_main();

ITU: Knihovny pro tvorbu GUI | 22 GTK – glade podpora tvorby GUI – skeleton vytvářené aplikace, do kterého se pouze doplní akční kód – nebo XML soubor, který obsahuje definici uživatelského rozhraní Nyní je preferována pouze druhá výše zmíněná možnost – GUI se nahraje z XML soubor za běhu aplikace pomocí knihovny libglade

ITU: Knihovny pro tvorbu GUI | 23 Qt Intuitive C++ class library Portability across desktop and embedded operating systems Integrated development tools with cross-platform IDE High runtime performance and small footprint on embedded

ITU: Knihovny pro tvorbu GUI | 24 Qt – nasazení KDE ( + KOffice) Google Earth VLC VariCAD Skype (linux) Amarok 2

ITU: Knihovny pro tvorbu GUI | 25 Qt – nástroje Qt Designer – Vytváření gui Qt Assistant – dokumentace Qt Linguist – Lokalizace qmake – makefile

ITU: Knihovny pro tvorbu GUI | 26 Qt – součásti core (included by default)QtCore module gui (included by default)QtGui module networkQtNetwork module openglQtOpenGL module phononPhonon Multimedia Framework sqlQtSql module svgQtSvg module xmlQtXml module webkitWebKit integration qt3supportQt3Support module (.pro “QT += xml”, apod. )

ITU: Knihovny pro tvorbu GUI | 27 Qt – MOC Meta Object Compiler rozšíření C++ pro snadnější tvorbu GUI na bázi makro jazyka – Nuný preprocessing – meta object compiler (moc) třída QObject – základní třída všech objektů v Qt makro Q_OBJECT – deklarace v privátní části třídy; umožňuje použití – dynamické vlastnosti objektů – signálů a slotů (viz dále) – doporučeno použití u všech tříd odvozených od Qobject. klíčová slova ve standardním C++ kódu

ITU: Knihovny pro tvorbu GUI | 28 Qt – Qobject Organizace objektů do stromu – rodiče objektu lze určit při jeho konstrukci; při destrukci objektu jsou automaticky uvolněny i všichni potomci Podpora pro reflexi – možnost získat meta objekt (QMetaObject) popisující daný QObject => lze zkoumat dědičnost, vlastnosti objektů apod. Přijímání a filtrace událostí – události zaslány vláknu, kde byl objekt vytvořen Základní podpora pro časovače – po spuštění (startTimer(interval)) je periodicky volána metoda timerEvent(QTimerEvent *event) Dynamické vlastnosti Mechanismus signálů a slotů

ITU: Knihovny pro tvorbu GUI | 29 Qt – signály a sloty komunikace mezi objekty náhrada callbacků; typově bezpečné ovšem pomalejší Signál je emitován při definované události Slot je metoda volaná jako reakce na zachycený signál propojení:

ITU: Knihovny pro tvorbu GUI | 30 Qt – demo Překlad Generování GUI Lokalizace a funkce tr() Signaly a Sloty Layouty

ITU: Knihovny pro tvorbu GUI | 31 Poděkování plus/ Smart J., Hock K., Csomor S.: Cross-Platform GUI Programming with wxWidgets. 2005, ISBN , 744 pages.