Portál AbcLinuxu, 26. dubna 2024 09:24
Řešení dotazu:
Aplikacia ktora ma bezat aj na desktope aj na mobile nie je uplne jednoduche vytvorit uz len kvoly roznemu sposobu ovladania. Na mobile je dotykove kym dekstop pouziva klavesnicu a mys. Aplikacia pojde prelozit aj spustit na obydvoch platformach len to nebude prakticke.Neni ale problem si udelat jednu aplikaci s ruznymi GUI, coz se zrovna v QT dela celkem snadno. Vyhoda je i pak v tom, ze kdyz si pripoji telefon pres HDMI k monitoru a pripoji k nemu klavesnici a mys, tak si muze prepnout aplikaci do desktopoveho GUI a naopak pri pouziti na tabletu (myslim tablet jako delala treba IBM) v tablet modu, tak muze pouzit dotykove GUI. Aplikace s GUI v QT neni vubec spatna ani na telefonu, zejmena pokud mate telefon s klavesnici - muzete pak prepinat fokus pomoci tab, coz je ve spouste aplikaci rozbite. Vrcholem je defaultni zamykaci obrazovka v androidu, kde nejde klavesnici zadat pin.
Jak to tedy je? Jsem schopen s QT vyvijet jednotne GUI, ktere bude frcet i na androidu?Na tohle už odpověděli jiní vejš, dodám k tomu jen, že psát nativní aplikace pro Android pro začátečníka nebude tak jednoduchý jako v Javě pro to Javovské API.
Jak to tedy je? Jsem schopen s QT vyvijet jednotne GUI, ktere bude frcet i na androidu?Ne. GUI by IMHO ani nemělo být stejné na desktopu a telefonu. Můžeš mít společný přenositelný kód (zejména logiku apod.), ale vždycky budeš potřebovat části specifické pro danou platformu, minimálně GUI a interakce se systémem.
A program pak vlastne posila signaly a ceka na odpovedi od nejake instance toho QT v systemu? A to QT jenom kresli formulare?Qt není jen o GUI a nemá nějakou jednu systémovou instanci, je to kolekce C++ knihoven + nástroje, celý framework. Mimo GUI obsahuje i abstrakce nad I/O (soubory, filesystém, ...), síťový záležitosti a spoustu dalšího. Signály v Qt jsou interní záležitost, s UNIXovými nebo jinými sygnály nemají nic společného. Je to v podstatě jen taková pomůcka při programování (pomíjím zde D-Bus).
V cem potom nejlepe takove veci zkouset? C moc neumim, ale je mi asi blizsi, nez java, protoze jsem kdysi delal PHP a hral jsem si s C pro jednocipy, takze syntaxe mi celkem vyhovuje.Podle toho, co píšeš, mi přijde, že si můžeš zvolit prakticky co chceš a nedá se jednoznačně určitě, co bys měl vyzkoušet. Je to víceméně na tobě. C++ má dost příkrou učící křivku a není úplně triviální porozumět všemu a psát to správně. Možná máš lepší spíš jít do tý Javy, určitě je to snaží na naučení, zejména jestli plnáuješ psát věci pro Android. Akorát dej bacha na to, že spousta lidí bere Javu a Javovské pojetí OOP hrozně nábožensky - tomu je dobrý se vyhnout obloukem. Na druhou stranu pro low-level věci je zase určitě vhodnější znalost C/C++. Možná bys měl vůbec nejlepší si zkusit napsat a rozchodit nějakou jednoduchou Hello World aplikaci v několika různých jazycích/frameworcích/technologiích a porovnat si zážitky. TL;DR je to na tobě, doporučuju vyzkoušet a ptát se konkrétněji.
pro male aplikace s par buttony a text poli, ktere budou odesilat nastaveni pres seriak do nejake HW deskyPodla mna na toto ti staci qml + 1, 2 triedy v C++, ktore budu implementovane ako qml komponent s metodami komunikujucimi s tvojim HW (taky wrapper) a tieto metody bude poskytovat javascriptu v qml (ak ti nieco hovoria vzory, prirovnal by som to k fasade alebo adapteru). Potom budes k tym funkciam pristupovat cez javascript v qml
A da se programovat v cistem C? C++ je pro mne velka neznama.Qt je pisane tak, aby si sa velmi o pamat nemusel starat, objekty v Qt funguju na principe shallow copy (nekopiruje sa cely objekt, kym nerobis v nom zmeny) a dokonca maju reference countre a spravaju sa potom ako smart pointre. "new" ani nejako nepouzijes Dokazal by mi nekdo vysvetlit, jak to funguje?
Dokazal by mi nekdo vysvetlit, jak to funguje?Ako framework. Qt ma vlastne keywordy a preto musia prechadzat jednym prekompilatorom navyse ("moc"), ale a sa mimo to predstavit ako velka sada kniznic s jednou filozofiou (signaly a sloty + shallow kopie objektov)
program i GUI je jedna vecTo zalezi cisto na tebe, na vyber je
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.