QT+QML czy to jest dojrzała technologia ?

1

Czy ktoś używał QML i może się podzielić wrażeniami ? Czy warto w to wchodzić ?

Dlaczego QT stworzyło tą technologię ? W czym to jest lepsze od Qt ?

Aby trochę zarysować problem dlaczego spoglądam w kierunku QML:

  • mam coraz więcej kodu w c++ i gui w Qt (Linux,Windows)
  • pojawiają się potrzeby aby byłą tez wersja Android/iOS i są rozważania jak to zrobić , była już eksperymentalna walka z flutterem ale wtedy trzeba masę kodu w C++ wytłumaczyć komuś na zewnątrz (osoby używające flutter maja awersje do c++)
0

Chodzi o interfejsy i ich wygląd(głównie), a to taki język że jest platform independent no i współpracuje z javascript. Generalnie dość mocno używany w QML jest w automotiv. Osobiście mma jeden projekt(mój własny) na qml i będę go przepisywał do we. Nie jestem mega biegły w QML ale niektóre rzeczy wydają się być niepotrzebnie skomplikowane(np. jakieś tam suwaki o ile dobrze pamiętam).
Oczywiście nie skreslam tej technologi ale specjalnie za nią nie przepadam, chociaż ma spore możliwości.

0

Specem nie jestem, ale to co wiem, to sie wypowiem.

Gdzies obilo mi sie o uszy, ze glownym powodem stworzenia QML, byla chec wykorzystania mozliwosci nowych sprzetow, zwlaszcza akceleracji sprzetowej przez GPU

Plusy QML:

  • chyba wieksze mozliwosci przy programowym tworzeniu animacji
  • mozliwosc oddzielenia GUI od bebechow - QML do GUI, a C++ do bebechow
  • duzo mozna napisa bez C++, tylko w samym javascript
  • Mozliwosc szybszego sprawdzenia GUI, bo samo GUI mozna uruchomic bez calej aplikacji, nawet na stronie KDE jest mozliwosc sprawdzenia QML, a to wszystko online (EDITED)

Minusy QML

  • niektore moduly, z racji javascriptu sa mniej wydajne (czytalem o tym kiedys)
  • jak dla mnie, zbyt skomplikowane laczenie C++ z QML (wywolywanie funkcji/zmiennych C++ w QML i odwrotnie)
0
revcorey napisał(a):

Chodzi o interfejsy i ich wygląd(głównie), a to taki język że jest platform independent no i współpracuje z javascript. Generalnie dość mocno używany w QML jest w automotiv. Osobiście mma jeden projekt(mój własny) na qml i będę go przepisywał do we. Nie jestem mega biegły w QML ale niektóre rzeczy wydają się być niepotrzebnie skomplikowane(np. jakieś tam suwaki o ile dobrze pamiętam).
Oczywiście nie skreslam tej technologi ale specjalnie za nią nie przepadam, chociaż ma spore możliwości.

A co takiego Cie zniecheca do QML? Sam kiedys mialem podobne podejscie, ale jak sie zmusilem i troche posiedzialem, to sam QML wydaje sie fajna sprawa. Jedyne, co dla mnie jest koszmarem, to laaczenie C++ i QML. Jak tylko sie da, to unikam C++ w QML, bo obecnie, moje proby laczenia C++ i QMLa kiepsko wychodzily.

0

@Paweleczek:
dokładnie moja aplikacja to połączenie z C++ + QML. Pamiętam że trzeba trochę poczytac a z materiałami bywa różnie.

2

QML w zamyśle powstał do obsługiwania urządzeń embedded, w rodzaju smartfony, tablety itd.
Czy warto w to wchodzić - jeśli tworzysz aplikacje stricte desktopowe nie warto, ale wspominasz o iOS i Androidzie, więc pewnie się nie obejdzie.
Niestety, mam złą wiadomość - dołączona do Qt Assistanta dokumentacja QMLowa jest do d**y, nie ma nawet podjazdu do opisu widgetów i C++. Największe przewinienie jakie zauważyłem to absolutny brak podkreślenia drastycznych różnic pomiędzy tym, jak się programowało coś w C++ i w oparciu o widgety, a jak to się odbywa w QMLu. Przykład - w QMLu layouty nie są abstrakcyjnymi bytami, tylko trzeba im ustalać rozmiar żeby działały; de facto bliżej im do QFrame'a niż QLayoutu. Oczywiście nikt się w dokumentacji słowem nie zająknął o tym. Inny przykład to okna - ile się w QMLu trzeba napierdzielić aby dodać ramkę do okna...a wszystko przez to, że zjeb który tworzył dokumentację do QMLa zapewne nie miał pojęcia o C++ i występującym tam Box Model, tylko założył, iż cudownym olśnieniem ludzie migrujący z wigetów do QMLa sami się zorientują iż tutaj okno należy sobie poskładać oddzielnie z surface'a oraz ramki. I na takie dzyngsy natrafia się co chwilę.

Moja więc rada Bracie - jeśli dobrze obeznałeś się z wigetami, i możesz je stosować na iOSie i Androidzie to pozostań przy nich.

1 użytkowników online, w tym zalogowanych: 0, gości: 1