Portál AbcLinuxu, 19. říjen 2017 03:32

QML – moderní uživatelská rozhraní v Qt (1)

13. 3. 2012 | Jaroslav Řezník
Články - QML – moderní uživatelská rozhraní v Qt (1)  

Dá se říct, že v dnešní době mobilní aplikace válcují svět. A to nejen klasické „prográmky“, ať již více či méně užitečné, ale také každá významnější akce má svou vlastní mobilní aplikaci, téměř všechna dnešní vydavatelství také nabízí svůj obsah touto formou a do mobilů proniká také televize. Dokonce i herní svět se výrazně proměnil s návratem k původním přenosným zařízením.

Autoři aplikací ovšem naráží na vážný problém, kterým jsou nástroje potřebné k vývoji, často pouze přenesené do mobilního světa z „dospělých“ desktopů a určené k jiným účelům. Ačkoliv v mobilním sektoru dominuje jen pár výrobců, je vývoj pro větší škálu různých zařízení noční můrou. Zároveň z pohledu příznivců otevřeného software se často jedná o uzavřené platformy. Tohle vše se chystala změnit Nokia akvizicí norské společnosti Trolltech a jejich frameworkem Qt. Ten zahodil svůj desktopový ráz a díky technologii Qt Quick se stal mobilní platformou, která má i přes změny v Nokii nakročeno k naplnění hesla „Qt Everywhere“.

Qt

Obsah

Qt v mobilním světě

link

Framework Qt rozhodně není v mobilním světě nováčkem – již v roce 2006 byl k dispozici Greenphone, byl to smartphone s uživatelským rozhraním zvaným Qtopia. Jednalo se o zařízení určené pro vývojáře, dodávané přímo firmou stojící za Qt. Qtopia byla tou dobou proprietární systém a kromě Greenphone se používala i ve vybraných handheldech (jedno z dnes již zapomenutých slov) různých výrobců. S otevřením zdrojových kódů bylo možné vidět část Qtopie (později Qt Extended) i na známém open source telefonu Neo Freerunner a dodnes probíhá vývoj distribuce Qt Moko – kompletně postavené na původním základu Qtopie/Qt Extended.

Greenphone s Qtopií

Vše se změnilo vstupem Nokie do Trolltechu. Nokia už dávno před tímto krokem koketovala s open source systémem – komunikátory N700 a N800 se systémem Maemo a v té době se dokončoval první mobilní telefon (či spíše mobilní počítač) N900 s uživatelským rozhraním postaveným na Gtk/Clutteru. Projekt Qt Extended byl ukončen a trollové se soustředili na Qt jak pro existující systém Symbian, tak i pro příští verzi Maema – Harmattan, který se dnes označuje jako MeeGo Harmattan. Pokračování ságy je ovšem všem čtenářům tohoto portálu známé – Nokia změnila strategii vstříc Windows Phone a Qt se tak zdálo odepsané. Za tu dobu ovšem vznikla spousta zajímavých technologií – QML s Qt Quick, Qt Mobility, Qt Creator, Nokia vydala výbornou N9, Symbian obsahuje Qt a počet dostupných aplikací dále roste i pro tento systém. Části WebOS od HP jsou postavené na Qt a QML, firma RIM oznámila podporu Qt ve svém operačním systému (hledejte Cascades) a i Nokia nadále na Qt pracuje v rámci strategie „next billion“. Qt si dnes žije vlastním životem – jako kompletně open source projekt, kde za první tři měsíce již více jak 30 procent příspěvků do zdrojových kódů pochází od nezávislých vývojářů a firem.

Náš seriál

link

Pojdme se tedy podívat, co Qt obnáší. Hlavní náplní tohoto dílu seriálu o použití Qt pro vývoj mobilních aplikací je příprava vývojového prostředí, jeho instalace a seznámení se s důležitými nástroji. Závěr pak bude tvořit obligátní Hello World aplikace pro systémy Harmattan (a také Symbian).

V dalších dílech se dozvíte více o samotném Qt, a to především o technologii Qt Quick s jazykem QML. Také se dozvíte o tvorbě komplexní aplikace v Qt Components, propojení s jazykem C++ a o distribucí finální aplikace do Nokia Store, případně dalších repozitářů mobilních aplikací. Samozřejmě nezůstaneme jen ve sférách mobilních aplikací, kdy se QML prolíná se známým desktopovým prostředím KDE Plasma, postaveným nad Qt. Zároveň se blíží i nová verze Qt, která dále integruje vše, co si jen představíme, do kompaktního celku se spoustou vylepšení.

Instalace Qt SDK a vývojového prostředí

link

Qt Creator je integrované vývojové prostředí (IDE) určené především pro vývoj aplikací v Qt od společnosti Nokia, a to přesněji její berlínské pobočky. V Qt Creatoru je možné pracovat jak na klasických (nejen) desktopových aplikacích v C++, tak v jazyce QML. Pro tento jazyk nabízí Qt Creator i grafický návrhář vzhledu a profiler. Qt Creator najdete dnes prakticky ve všech distribucích v jejich repozitářích. Ovšem v případě této volby distribuce je na uživateli, aby si nastavil zbytek prostředí, jak toolchain pro danou cílovou platformu (kde linuxový desktop je nejjednodušší), tak ostatní nástroje, jako je Qt Simulator a podpora tvorby instalačních balíčků. Proto společnost Nokia nabízí takzvané Qt SDK – jeden velký balík, kde je vše již předpřipravené a také tomu odpovídá i jeho velikost. Pro Windows a Mac má offline instalátor přes 1,2 GB, pro Linux je zhruba poloviční. Rozdíl je způsoben distribucí Symbian toolchainu pro Windows a Mac, linuxová verze bohužel neumožňuje překlad aplikací pro tento mobilní systém. V následujícím textu si však ukážeme, jak je možné toto nepříjemné omezení obejít.

První krok instalace je stažení instalačního balíku z webu Nokie – v seriálu se předpokládá použití verze pro Linux, ale Windows i Mac verze jsou velmi podobné. Pro každou platformu existuje jak online, tak offline verze instalátoru. (Pozn.: Autor článku doporučuje právě offline verzi, a to především z důvodu výpadku připojení k serverům Nokie, které autor sám několikrát zažil.) Staženému souboru nastavíme běžným způsobem práva pro spouštění (chmod +x soubor) a po jeho spuštění se objeví okno instalátoru. Ten Vás bude provázet jak při instalaci/odinstalaci součástí Qt SDK, tak i při aktualizaci na nové verze. Při prvotní instalaci je vhodné nechat nastavení instalovaných komponent na instalátoru, jednotlivé části si vysvětlíme později. Součástí tohoto nastavení budou Qt knihovny (s Qt Mobility a Qt Components), samotný Qt Creator, simulační nástroj mobilních zařízení Qt Simulator a dokumentace. Bude také připraven kompletní toolchain pro vývoj aplikací pro Harmattan. Při instalaci je také potřeba potvrdit licenční ujednání pro jednotlivé komponenty.

Instalátor Qt SDK

Po úspěšné instalaci je možné spustit vývojové prostředí přímo z instalátoru či běžně z menu aplikací pod názvem Qt Creator.

Naše první aplikace

link

Průvodce novou aplikací

link

Nyní si ukážeme, jak v Qt Creatoru začít nový projekt – mobilní aplikaci pro platformu Harmattan (tedy N9/N950). Jen malé poznámka – Qt Creator sám o sobě má českou lokalizaci, v článku však budeme používat anglickou verzi. Vývojové prostředí nabízí několik možností jak vytvořit nový projekt, buď v menu File vybereme New File or Project nebo rámci záložky Welcome/Getting Started stiskneme tlačítko Create Project. Nabídne se výběr z několika šablon – jak desktopových Qt Widget Project, tak pro nás zajímavější Qt Quick Project. A protože chceme začít psát celou aplikaci, nejen uživatelské rozhraní v Qt Quick nebo rozšíření QML v jazyce C++, zvolíme tedy volbu Qt Quick Application.

Nový projekt

Následně je potřeba nastavit název projektu – píšeme (či spíše necháme si vygenerovat) jednoduchou aplikaci Hello World, takže nazvěme aplikaci hello. U názvu je dobré být již od začátku konzervativní a používat raději jen alfanumerické znaky, protože některé balíčkovací systémy mohou použití jiných znaků omezovat. Jako Qt Quick Application Type vybereme Qt Quick Components for MeeGo/Harmattan. Tak budeme moci využít předpřipravených grafických prvků pro Harmattan a bezproblémovou integraci do systému. Použití čistého Qt Quick a psaní vlastních komponent bude náplní druhého dílu seriálu.

Cílová platforma pro Qt Quick

V posledním kroku nastavíme cílovou platformu, pro kterou budeme projekt překládat a spouštět. V našem případě to bude Qt Simulator a Harmattan. Ten můžete zvolit, i pokud s ním žádné zařízení nevlastníte. Výsledkem bude debianní balíček, který můžete zkusit např. přes Remote Device Access. Ti, co předbíhali a nakonfigurovali si vlastní instalaci, uvidí i Remote Compiler, nabízející vzdálený překlad pro Maemo, Symbian a Harmattan. Cíle projektu se dají později změnit v záložce Projects kliknutím na plus (případně mínus pro odebrání cíle).

Následně můžeme nastavit ikonu aplikace, ale v této chvíli dáme přednost nabízené defaultní ikoně. Ikona se dá samozřejmě později změnit (pro Harmattan obyčejné PNG, Symbian je komplikovanější kvůli nutnosti využití SVG a to ještě omezené podmnožiny). Zkontrolujeme, že máme vybráno Make application boostable – aplikace pak startuje rychleji.

Výběr kompilovaných platforem

Qt Creator nakonec nabídne v rámci průvodce možnost přidat projekt do některého z vybraných verzovacích systémů (např. Git, Mercurial atd.). Pro Harmattan taky dostaneme možnost vybrat předgenerované soubory pro tvorbu balíčku, jejichž přidání odsouhlasíme. V této chvíli pro nás Qt Creator vygeneroval celou strukturu aplikace Hello World. V následujícím odstavci se na ni podíváme podrobněji.

Struktura aplikace

link

Qt Quick aplikace vytvořené pomocí průvodce v Qt Creatoru mají pevně danou strukturu a rozdělení jednotlivých zdrojových kódů do podadresářů. V rámci projektu můžete vidět soubory v jazyce C++, podprojekty, balíčkovací informace a především zdrojové kódy aplikace v QML.

Struktura projektu/mobilní aplikace v Qt Creatoru

Nejdůležitější součástí aplikace je projektový soubor, v našem případě hello.pro. Při běžném použití se o jeho obsah stará vývojové prostředí, ale jsou situace, kdy je potřeba ruční editace. Jedná se např. o přidání podpory vybraného Qt modulu, definice potřebné pro balíčkování pro Symbian (capabilities, UID), o kterých si povíme v jednom z následujících dílů seriálu o distribuci aplikace, atd.

Do projektu je také vložený jeden podprojekt – qmlapplicationviewer – předpřipravený prohlížeč QML souborů, který vývojáři usnadní práci s vlastním prohlížečem. Jinak je možné jak napsat si vlastní, tak i vložit QML soubory např. do desktopové aplikace. V rámci našeho seriálu budeme využívat právě tento prohlížeč, a to i z důvodu dobré integrace aplikace na mobilním zařízení (booster na Harmattanu atd.). Jelikož se jedná o automaticky dodávaný a především aktualizovaný podprojekt (IDE nabídne po aktualizaci Qt SDK), tak je dobré se vyvarovat změn jeho kódu. Prohlížeč je následně integrován do aplikace v souboru main.cpp. Zde jsou již ruční modifikace povoleny a k jejich možnostem se dostaneme v dílu o rozšiřování funkcionality Qt Quick v jazyce C++. Na ten ale prozatím můžeme zapomenout (což se může zdát podivné, jelikož celé Qt se až doposud týkalo C++).

To nejzajímavější se ovšem skrývá pod položkou QML – obsah adresáře qml/hello. Jedná se o předgenerované soubory – main.qml a MainPage.qml. Qt Components aplikace jsou složeny ze zásobníku jednotlivých stránek (komponenta Page) zobrazených v okně (komponenta PageStackWindow), které lze buď přidat na jeho vrchol (klasická push operace), či odebrat (pop). V MainPage.qml je tak definována základní stránka aplikace, která je poté instanciována v main.qml a nastavena jako prvotní stránka. Nedílnou součástí souboru jsou i importy externích komponent – obecně komponenta QtQuick a pro MeeGo Harmattan komponenta com.nokia.meego. Obojí si detailněji ukážeme v následujícím dílu o QML, Qt Quick a Qt Components.

main.qml (kompaktní verze pro zjednodušení výpisu)

import QtQuick 1.1
import com.nokia.meego 1.0

PageStackWindow {
    id: appWindow

    initialPage: mainPage

    MainPage {
        id: mainPage

        Label {
            id: label
            anchors.centerIn: parent
            text: qsTr("Hello world!")
        }
    }
}

Překládáme a spouštíme

link

QML

Nyní se dostáváme k poslednímu kroku – naši aplikaci chceme vidět naživo. Qt SDK nám nabízí několik možností. Buď máme k dispozici reálný hardware s Harmattanem (či jiným systémem podporovaným v Qt Creatoru) nebo se v rámci SDK dodává QEMU obraz s předinstalovaným systémem. Další možností, kterou nyní využijeme, je Qt Simulator. Přesvědčíme se, že je vybraný – viz screenshot vlevo –, a pokud ne, klikneme na ikonku pod nápisem hello. Vývojové prostředí pak nabídne možnost volby cíle. Výhodou Qt Simulatoru je především rychlost běhu aplikace – běží nativně na systému bez nutnosti virtualizace a především nabízí možnost simulovat různá zařízení (N9, Symbian) v jejich rozlišeních, s možností rotace displeje a se simulací jejich funkcionality (jak hardware, tak například i seznam kontaktů, kalendář atd.). Podrobněji si Qt Simulator opět projdeme ve spojitosti s Qt Mobility a testováním aplikace.

Ke spuštění slouží dvě tlačítka s ikonou zelené šipky (druhá je spuštění v ladícím módu; pokud to zařízení podporuje, je také možné ladit vzdáleně, a to jak C++, tak i QML). Druhou možností je v menu Build vybrat položku Run. Odpovídající klávesová zkratka je Ctrl+R.

Hello World v simulátoru

Po spuštění aplikace se zobrazí okno simulátoru s oknem aplikace umístěným ve zvoleném tématu skutečného hardware. A po stisknutí tlačítka Click here! uvidíme svou první aplikaci, která nás tímto slušně pozdraví. Jak můžete vidět – aplikace se velmi dobře integruje do systému Harmattan – používá stejný styl, spodní část obrazovky vyplňuje nástrojová lišta, a ta obsahuje menu. Ale o tom již více příště!

Pozor: soutěž!

Sdružení Openmobility spouští soutěž Be Qt: soutež ve vývoji mobilních aplikací pro platformy MeeGo Harmattan a Symbian. Hlavní cenou pro nejlepší aplikaci je linuxová Nokia N9.

Openmobility

Tento seriál vychází ve spolupráci s občanským sdružením Openmobility.
Cílem Openmobility je podporovat a propagovat otevřená řešení v oblasti mobilních technologiích v širším kontextu.

Seriál QML – moderní uživatelská rozhraní v Qt (dílů: 3)

První díl: QML – moderní uživatelská rozhraní v Qt (1), poslední díl: QML – moderní uživatelská rozhraní v Qt (3).
Následující díl: QML – moderní uživatelská rozhraní v Qt (2)

Další články z této rubriky

LLVM a Clang – více než dobrá náhrada za GCC
Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Reverzujeme ovladače pro USB HID zařízení
Linux: systémové volání splice()
Programování v jazyce Vala - základní prvky jazyka

Diskuse k tomuto článku

stativ avatar 13.3.2012 09:55 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Odpovědět | Sbalit | Link | Blokovat | Admin
Díky za článek. Schází mi v něm, ale proč se QML vůbec zabývat. Zatím jsem se nikde pořádně nedočetl, jakou má výhodu použití QML oproti popisu widgetů v C++ (případně pomocí .ui), naopak to pro mě znamená učit se nějaký obskurní jazyk založený na JavaScriptu.
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
13.3.2012 10:49 radek
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Třeba proto, že je jej možno použít pro vývoj app pro Ubuntu QML v Ubuntu
13.3.2012 10:52 MartinK
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Pač se v tom rychleji píše, hlavně co se týče mobilních či dynamických UI. Jednotlivé prvky se na sebe navzájem navážou pomocí svých "properties" a díky tomu se pak automaticky přizpůsobí jakmile se hodnota navázané property změní. Výsledkem je (dle mého názoru) menší množství kódu, který je navíc většinou dobře čitelný.

No a pak je v QML a Qt Components (které jsou založené na QML) spousta hotových elementů pro mobilní použití, které mezi sebou jde takhle provázat.

Osobně jsem přecházel z kombinace GTK/Cairo + Python na Qt/QML + Python a rozdíl v produktivitě a rychlosti vývoje je fakt dost velký. :)

A od lidí co používají QML s C++ jsem taky slyšel, že se jim hodí, že můžou snadno měnit QML soubory bez nutnosti (pomalé ?) rekompilace C++ části aplikace během vývoje.

Rezza avatar 13.3.2012 11:14 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Dostanu se k tomu za tyden :)
belisarivs avatar 13.3.2012 18:32 belisarivs | skóre: 22 | blog: Psychobláboly
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
No, nc ve zlem, ale ja bych tohle prave cekal v prvnim clanku.
IRC is just multiplayer notepad.
Rezza avatar 13.3.2012 21:12 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Serial vychazi na Abicku a i na Openmobility a je zamereny na mobilni vyuziti a prakticteji - jak si napsat vlastni aplikaci. Vzal jsem to od zakladu, priste troska teorie. A proc neni zminka o C++ - opet mobilni aplikace se v nem vubec nepisou. Ale zamerim se na to v pokracovani :)
Rezza avatar 13.3.2012 11:17 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Btw. v Qt 5 uz budou QtWidgets jen Add-on modul a nebudou uplny zaklad (ale taky se nezabiji, jak nekdo obcas pise).
13.3.2012 14:12 s0 | skóre: 32 | blog: nejchytřejší kecy | prágl
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
jsem spíš pesimista. Prostě se qwidgety nechají vyhnít a pak se odseknou.
Kuolema Kaikille (Paitsi Meille).
Rezza avatar 13.3.2012 15:43 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
No nekdo se zajmem se o ne bude muset starat - Nokia to nebude, ti je nepotrebuji. Ale ti co prodavaji komercni licence Qt na destkop veci, ti budou muset.
oryctolagus avatar 13.3.2012 16:23 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
To těžko. Vždyť na tom stojí i kdelibs afaik.
Existuje 10 druhů lidí: Ti, co nerozumí binární soustavě, ti, co ano, a ti, kteří znají i balancovanou ternární.
14.3.2012 09:47 radek
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
spousta firem ve svete pouzovat qwidgety pro specializovany software a stale jich pribyva. Finska Digia prevzala zpravu komercniho licencovani a starost o maintanance. Samotny modul QWidget je vyspely. Odseknout se nemohou protoze uz nejsou v jadre, existuji jako samostatny modul. A nevyhniji jeste nejakou slusnou chvili protoze se nesutale pouzivaji a pouzivat budou.
Luboš Doležel (Doli) avatar 14.3.2012 15:19 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
To jako už nebudu moct vytvořit widget programově a budu muset na všechno generovat QML? To je divný, ne?
Rezza avatar 14.3.2012 15:33 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Dokud bude existovat Add-on modul QWidget, pujde to v C++. Cil je i na desktop dotahnout QML, ale to bude jeste na dlouho. A QWidgets jen tak nezemrou, to by nedovolily firmy ala Digia atd.
Josef Kufner avatar 14.3.2012 17:07 Josef Kufner | skóre: 67
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Spíš bych to viděl tak, že si vyrobíš widget v C++ a pak ho pomocí QML použiješ v aplikaci. Tím získáš výhody obojího světa – snadnost skládání a propojování komponent skriptovacím jazykem na jedné straně a možnosti objektově orientovaného programování a výkonu C++ na straně druhé. Ono totiž OOP se moc nehodí na skládání komponent, ale dobře se s ním komponenty tvoří, takže mi takový hybridní přístup přijde jako velmi rozumný.
Hello world ! Segmentation fault (core dumped)
Luboš Doležel (Doli) avatar 14.3.2012 18:11 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Mně to přijde tak trochu přes ruku :-/
Josef Kufner avatar 14.3.2012 18:41 Josef Kufner | skóre: 67
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Jo, ono to tak trošku je, ale díky tomu to nutí vývojáře udělat slušně API jednotlivých widgetů a to se pak vrátí na jejich znovupoužitelnosti.

Když to ale vemeš kolem a kolem, ono to vyjde nastejno. Tak jako tak musíš vyrobit nějaký ten hlavní widget, kde akorát lepíš ostatní widgety. Obvykle se to naklikává v designerovi, takže podsud to vyjde s QML nastejno. Akorát že QML navíc umožňuje přidat kusy "slepovacího" kódu, takže se v mnoha případech lze C++ úplně vyhnout. Například když chceš dopočítávat druhé políčko dialogu, pokud uživatel zaškrtne "zachovat poměr stran".
Hello world ! Segmentation fault (core dumped)
Luboš Doležel (Doli) avatar 14.3.2012 18:53 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Například když chceš dopočítávat druhé políčko dialogu, pokud uživatel zaškrtne "zachovat poměr stran".
Jako jo, ale tohle v 95% případů nepotřebuju. Naopak se do toho takhle zbytečně zapojí další parsování, reflexe atd.
Josef Kufner avatar 14.3.2012 19:09 Josef Kufner | skóre: 67
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Tu reflexi okolo signálů a slotů tam máš tak jako tak.
Hello world ! Segmentation fault (core dumped)
Luboš Doležel (Doli) avatar 14.3.2012 20:59 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
To jo, ale properties jdou přímo. No, uvdíme.
13.3.2012 10:43 Petr Šigut | skóre: 34 | blog: PhaX_blog
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Odpovědět | Sbalit | Link | Blokovat | Admin
Já nechci brát nadšení, ale stejně mi Qt na mobilech přijde krapet mrtvé:( Balík pro Linux neumí Symbian (který je mrtvý) a MeeGo (ač jsem sám měl N770) je dneska taky mrtvé...

rychlý multiplatformní vývoj pro mobily převzalo HTML5
Luboš Doležel (Doli) avatar 13.3.2012 10:56 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
No, naštěstí není QML omezené na mobilní zařízení :-) A hlavně se zapomíná na port Qt na Android.
13.3.2012 10:59 MartinK
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
A na port PySide pro Android (takže to Qt a QML jde použít z Pythonu). :)
AIP avatar 13.3.2012 13:14 AIP
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Ale qt na android je: https://play.google.com/store/apps/details?id=org.kde.necessitas.ministro&feature=search_result akorát nebyl od listopadu update
Luboš Doležel (Doli) avatar 13.3.2012 14:16 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Však tak jsem to myslel...
Rezza avatar 13.3.2012 11:17 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Tak v Nokii to bude Meltemi (snad a snad jiz brzy), Qt je na Androidu, iOS se celkem rozjelo. RIM bude mit nove UI postavene nad Qt Quick (cascades), casti webOS jsou psane v Qt Quick... Cele KDE a Plasma se pomalu staviji Qt Quick only, Unity 2D je taky. Co se tyce HTML5 - z toho si to hodne bere - JavaScript je skoro stejny, Qt 5 bude mit i Canvas, ale clovek nemusi prasit UI v HTML, coz je des, ale v prijemnejsim jazyku.
13.3.2012 11:25 Petr Šigut | skóre: 34 | blog: PhaX_blog
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Je pravda že jsem to hledal před nějakým časem, ale Qt pro Android a iOS vypadaly jako naprosto nepoužitelné podivné projekty:) V článku se píše jen o projektu pro Symbian a Meego...

Co se týká Qt a desktopu tak o tom v nejmenším nepochybuju, je cool, jde mi teď čistě o ty mobilní platformy.

Rezza avatar 13.3.2012 12:29 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Tak jasne, chvili to trva. S Qt 5 by to melo byt ale jednodussi, bude hodne osekane, mirit primo na mobily.
13.3.2012 13:33 Petr Šigut | skóre: 34 | blog: PhaX_blog
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Já na to čekal od dob Greenphone... pořád to vypadalo za rohem, ale realita je holt dnes taková že jsou frameworky (PhoneGap) se kterýma můžu dnes multiplatformně vyvíjet pro hlavní mobilní věci (Android, iOS) a Qt je stále na okraji zájmů... je to smutné ale já už nad tím zlomil hůl:(
Rezza avatar 13.3.2012 13:44 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
No zkus si neco delat v tom HTML5 a multiplatforme a uvidis, jak pohoris. Nerikam, ze Qt je na tom v soucasne dobe o moc lip.
13.3.2012 17:05 Petr Šigut | skóre: 34 | blog: PhaX_blog
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Jako samozřejmě, už jen u multiplatformní pro jednu platformu jsem dost sprostý na to aby se to tady nedalo publikovat:)

Jsem zvědavý na to co sepíšeš o Qt5!
Rezza avatar 13.3.2012 17:21 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
A ja doufam, ze posles prispevek do souteze :)
13.3.2012 22:01 jurasn
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
KDE v QT Quick a JS? No fuj, další Metro nechci. Zrovna ne v době, kdy klasické QT knihovny patří k tomu nejlepšímu, co zatím bylo vytvořeno. Jak se vůbec budou kde aplikace v QT Quick skinovat, když co jsem zatím viděl dema, tak QT quick je dobré na takové ty hrozně cool matlací věci s natvrdo zadrátovaným vzhledem, ale ukázka normální aplikace s klasickým Win 9x like GUI (to co většina uživatelů na desktopu očekává) v QT Quick se nikde nevyskytuje?
Rezza avatar 13.3.2012 22:38 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Tak zatim je to jen Plasma. Plasma Active je vicemene QML, velke kusy desktopove Plasmy se prepisuji do QML. QML je v KWinu atd. A jak muzou vypadat desktopove aplikace v Qt Componentes? http://labs.qt.nokia.com/2011/03/10/qml-components-for-desktop/ Jako desktopove aplikace. Samozrejme i Metro UI je Qt Quick mozne.
Saljack avatar 13.3.2012 22:34 Saljack | skóre: 28 | blog: Saljack | Praha
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Zkoušeli jste už někdo Qt pro Android? Jaké máte zkušenosti? Píši bakalářku a dělám klienta pro Android a právě se rozhoduji jestli použít Qt. Byl bych moc rád, kdyby někdo napsal své zkušenosti s tímto budu mu moc vděčný.
Sex, Drugs & Rock´n Roll.
mirec avatar 15.3.2012 19:32 mirec | skóre: 31 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
S Qt pre Android nemám nejaké problémy. Nie všekto je dostupné cez Qt Mobility, k nedostupným API sa dá dostať aj inak.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Rezza avatar 15.3.2012 21:19 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Podle toho, co potrebujes v tom klientikovi pouzit. Vic infa by nebylo?
Saljack avatar 16.3.2012 00:42 Saljack | skóre: 28 | blog: Saljack | Praha
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Ten klient bude přistupovat k RESTovému rozhraní mé desktopové aplikace, která je také napsaná v Qt. Takže potřebuj aby šlo použít jak modul QtNetwork, tak i QtXml. Hlavně mě zajímá, jestli půjde použít QtNetwork s SSL.
Sex, Drugs & Rock´n Roll.
8.4.2012 20:44 smoegel
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
je to mozne programujem si len tak sam pre seba alebo ked si potrebujem ulahcit pracu. V QT (Necessitas) mam ssl klienta co posiela jednoduche requesty na PC (QT) ten vybavi poziadavku a posle odpoved. Klient bezi aj pod symbianom aj pod Androidom ale to api asi nefunguje uplne pod kazdou verziou rovnako :-(
Saljack avatar 9.4.2012 15:35 Saljack | skóre: 28 | blog: Saljack | Praha
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Je to bakalářka a už to mám hotové a funguje to dobře jediný problém co jsem měl, že QNetworkAcessmanager neposílá requesty na jednou, ale rozděluje header a obsah. Ale to je asi normální všude.
Sex, Drugs & Rock´n Roll.
D.A.Tiger avatar 13.3.2012 23:42 D.A.Tiger | skóre: 8 | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Odpovědět | Sbalit | Link | Blokovat | Admin
Už tady podobná námitka padla v trochu jiné formě, ale nedá mi to a zeptám se přímo : Které mobilní systémy přímo podporují QT? Určitě telefony od Nokie, vyrozuměl jsem, že snad i Android. A další..? Není to trochu v tomto případě úzkoprofilová záležitost?

Radost z toho, že někdo objeví něco nového, je omyl starý 6000 let... (Jean Paul) | anthill inside
Rezza avatar 14.3.2012 12:46 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
No kazda vyvojova platforma pro mobily je hodne uzkoprofilova. Aktualne je to Nokia - Symbian, Harmattan a asi Meltemi. Tam je Qt default. Bude i v novem OS od RIMu. Jinak je mozne QML aplikace rozjet jak na Androidu, tak i iOS (tam asi bude potreba komercni licence). Port existuje na vice systemu. Ovsem Qt zde neni v zakladu, coz znamena slozitejsi distribuci. Tady hodne pomuze rozsekane Qt 5.
D.A.Tiger avatar 14.3.2012 23:22 D.A.Tiger | skóre: 8 | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Díky za vysvětlení, nechtěl jsem rejpat, či nějak shazovat článek, pouze jsem byl zvědavý. A ještě jedna otázka ze zvědavosti : Víš něco o QT a Badě (Samsung)? Dík.
Radost z toho, že někdo objeví něco nového, je omyl starý 6000 let... (Jean Paul) | anthill inside
Rezza avatar 15.3.2012 11:48 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Tady neco je, nevypada to moc zive http://code.google.com/p/bada-lighthouse/

Lighthouse, dnes PPA je vec, diky ktere je mozne Qt celkem slusne portovat na ruzne platformy.
D.A.Tiger avatar 15.3.2012 12:47 D.A.Tiger | skóre: 8 | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Dík, mrknu na to.
Radost z toho, že někdo objeví něco nového, je omyl starý 6000 let... (Jean Paul) | anthill inside
Rezza avatar 15.3.2012 13:21 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: QML – moderní uživatelská rozhraní v Qt (1)
Ci spise tady a dela na tom Bogdan Vatra, clovek co stoji za Androidem... https://qt.gitorious.org/qt/bada-lighthouse
24.3.2012 08:55 fri
Rozbalit Rozbalit vše Qt Creator - rozhraní v češtině
Odpovědět | Sbalit | Link | Blokovat | Admin
Udělal jsem teď pár snímků verze 1.2 Qt Creatoru: http://fripohled.blogspot.com/2012/03/qt-creator-12.html
oryctolagus avatar 24.3.2012 11:04 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: Qt Creator - rozhraní v češtině
*sigh* ... Kolik dělá to výpalný?
Existuje 10 druhů lidí: Ti, co nerozumí binární soustavě, ti, co ano, a ti, kteří znají i balancovanou ternární.
24.3.2012 15:11 fri
Rozbalit Rozbalit vše Re: Qt Creator - rozhraní v češtině
Posledně jeden hoch sliboval modré z nebe, ty možná nabídneš pusu, :-) , ale já takové potřeby zrovna nemám.
oryctolagus avatar 24.3.2012 15:26 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: Qt Creator - rozhraní v češtině
To jsem byl nejspíš taky já... teď ale trochu vážněji:

Proč překládat Qt Creator? Opravdu nevím, takže radši proč nepřekládat Qt Creator:

Je to IDE, vývojové prostředí pro programátory. U programátorů se všeobecně předpolkádá alespoň základní znalost angličtiny. Neplatí to vždy, ale troufnu si říct, že většina jich anglicky umí alespoň tak, že jsou schopni používat IDE + dokumentaci v angličtině.

Qt Creator je primárně určený pro vývoj s frameworkem Qt (ačkoli jde dobře použít i pro non-Qt projekty). Celá dokumentace ke Qt je v angličtině, stejně tak ~90% ostatních materiálů a diskusí na internetu ohledně Qt. Že by někdo zvládl nastudovat EN dokumentaci, ale následně nezvládl práci s IDE? To bych neřekl...

Podobné se týká i C++ jako takového, ačkoli u něj je, pravda, českých materiálů mnohem více. Rozhodně ale žádnému programátorovi neuškodí rozumět anglickým pojmům jako např. "source", "build", "make", "object", "class", "coding style" a mnohé další...

Sečteno podtrženo, na překlad Qt Creatoru bych neplýtval námahou...
Existuje 10 druhů lidí: Ti, co nerozumí binární soustavě, ti, co ano, a ti, kteří znají i balancovanou ternární.
24.3.2012 17:20 fri
Rozbalit Rozbalit vše Re: Qt Creator - rozhraní v češtině
Znalost cizího jazyka pro daný účel je něco, čím se uživatel jiného než mateřského jazyka postupně propracovává. To že nakonec bude používat rozhraní programu v jazyce, v tomto případě programátorského nástroje, ve kterém se tvoří, je dobrá známka za všechno to úsilí. Ne každý ale celou tu cestu projde až k cíli - aspoň dostatečnému zvládnutí.

Ke čtení návodů nelze než to známé "učit se, učit se, učit se" doporučit. To se předpokládá jako nezbytné. Překlad dokumentace je tak proveditelný zvláště národy, co mají podstatně víc milionů obyvatel - případných programátorů, dostupných překladatelských sil, než co žije v našich zemích.

Jestli mají například Němci přeloženou aspoň část dokumentace, nevím, ale řekněme pro tuto chvíli a potřebu, že taky ne. Je jich německy mluvících aspoň sto milionů. Co ale mají určitě, je přeložené rozhraní Qt Creatoru. Mají jasnou představu vlastní velikosti a zájmů.
oryctolagus avatar 25.3.2012 13:11 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: Qt Creator - rozhraní v češtině
No, žádnou německou dokumentaci ke Qt se mi nepodařilo vygooglovat. Takže asi nemají. A já se nedivím - překládat dokumentaci Qt je šílená práce (je toho hodně a rychle se to mění), ale přitom výsledek by relativně málokdo skutečně použil.

No a to že mají přeložený Qt Creator - no a co? Pro ně platí to samé jako pro češtinu - užitečnost toho překladu je přinejlepším diskutabilní.
Existuje 10 druhů lidí: Ti, co nerozumí binární soustavě, ti, co ano, a ti, kteří znají i balancovanou ternární.
25.3.2012 14:54 fri
Rozbalit Rozbalit vše Re: Qt Creator - rozhraní v češtině
Taková diskuse má na to, co dělají lidé, asi takový vliv, jaký by měla rada ptákům, jak mají zpívat.
oryctolagus avatar 25.3.2012 16:47 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: Qt Creator - rozhraní v češtině
Mohl jsi napsat "kašlu ti na to, budu si dělat co chci" rovnou :-D

Jenom ze zvědavosti: ty překládáš cestou angličtina → němčina → čeština? Nebo jaká je vlastně tvoje znalost angličtiny?
Existuje 10 druhů lidí: Ti, co nerozumí binární soustavě, ti, co ano, a ti, kteří znají i balancovanou ternární.
25.3.2012 19:16 fri
Rozbalit Rozbalit vše Re: Qt Creator - rozhraní v češtině
Astrolog by ti řekl, že lidé narození v mém znamení nedělají věci jenom proto, že chtějí, ale protože jsou přesvědčení o jejich správnosti.

Moje znalost angličtiny je pasivní - nejčastěji ji použiju při čtení textů. Ten vznesený předpoklad, že bych to dělal tak, jak popisuješ (angličtina → němčina → čeština), je mylný v tom, že naznačuje, že bych něco takového v tom pořadí potřeboval.

Už jsem to tady snad někde vysvětlil, (že by v diskuzi k tomu článku, co napsal ten, co si jako já taky říká "člověk"? :-), že němčina mi občas slouží k porovnání. Potvrdí to, co jsem si myslel z hlediska významu, nabídne skladbu věty, která často vyhovuje češtině, co se týče valencí a prepozic.

Někdy si člověk potřebuje poradit, jak to jde. Takto jsem, dokud nezrušili z "technických důvodů" službu internetového slovníku pro polštinu u jednoho programu, co má zdrojové texty ve francouzštině, s úspěchem používal ke stejnému účelu polštinu, a to jsem kdysi z francouzštiny maturoval.
stativ avatar 25.3.2012 10:53 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: Qt Creator - rozhraní v češtině
Nechceš se s těmi tvými „překlady“ konečně jít zahrabat? Kdybych si musel rozhraní překládat se slovníkem v ruce, bude to míň matoucí.
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
25.3.2012 14:55 fri
Rozbalit Rozbalit vše Re: Qt Creator - rozhraní v češtině
Dělej to, jak umíš.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.