From b57931618252ae67948c2e6cf041ef601fbd7a07 Mon Sep 17 00:00:00 2001 From: fanda Date: Wed, 25 Mar 2015 11:40:25 +0100 Subject: [PATCH] --- prednasky/gui/index.mdwn | 50 +++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/prednasky/gui/index.mdwn b/prednasky/gui/index.mdwn index 900b6090..1cf5bacb 100644 --- a/prednasky/gui/index.mdwn +++ b/prednasky/gui/index.mdwn @@ -132,6 +132,7 @@ Firma4 | 200 | Git | Jenkins | GitLab | GitLab | * Mutex * Socket * Virtuální paměť + * Perfektní znalost nějakého programovacího jazyka je velkou výhodou ---------- @@ -249,7 +250,39 @@ Používat přímo xlib by bylo poněkud těžkopádné ([[příklad| xlib-examp # Úspěšné postupy při tvorbě GUI aplikací -Ať už se rozhodnete pro jakoukoliv platformu, narazíte nakonec na stejné problémy +Ať už se rozhodnete pro jakoukoliv platformu, narazíte nakonec na stejné problémy, budete implementovat: + * Prezentační vrstvu + * UI design (deklarativní) + * XML + * QML + * kód + * navázání ovládacích prvků na jejich handlery (procedurální) + * SIGNAL/SLOT + * update zobrazovacích prvků se změnami prezentovaných dat + * SIGNAL/SLOT + * MVC + * komunikace s aplikační vrstvou + * SIGNAL/SLOT + * RPC + * v tu ránu potřebujete serializaci-deserializaci a většinou i VARIANT + * Aplikační vrstvu + * Business logika + * tady je konečně to programování + * Persistence dat + * velmi často SQL + +## UI design + +- způsob (deklarativní) jakým definujeme UI +- poloha a atributy ovládacích prvků v oknech aplikace +- poměrně výrazně ovlivňuje produktivitu vývojáře +- kód, XML, QML, custom + +### Použití layout manageru + +- Zaručuje optimální umístění a velikost widgetů při změně velikosti okna. +- Je přirozenější říct tlačítka jsou nalevo pod sebou, než specifikovat jejich souřadnice + ## Komunikace objektů @@ -281,17 +314,12 @@ Ať už se rozhodnete pro jakoukoliv platformu, narazíte nakonec na stejné pro ![model-view][6] -### Použití layout manageru - -- Zaručuje optimální umístění a velikost widgetů při změně velikosti okna. -- Je přirozenější říct tlačítka jsou nalevo pod sebou, než specifikovat jejich souřadnice +## Qt Declarative QML -### UI definition - -- způsob jakým definujeme UI -- poloha a atributy ovládacích prvků v oknech aplikace -- poměrně výrazně ovlivňuje produktivitu vývojáře -- kód, XML, QML, custom +* use QML for UI design +* use JavaScript for UI event handling +* use C++ for business logic implementation +* looks great, but ... type erasure is developer's grave [1]: X_client_sever_example.svg [2]: http://cs.wikipedia.org/wiki/X_display_manager -- 2.39.2