Brakujące ogniwa Qt5 (C++ & QML).

Brakowało mi sensownego wyjaśnienia integracji tych dwóch światów:

Dostęp do atrybutów w C++ z poziomu QML
Dostęp do atrybutów w QML z C++

Nie wiem czemu wcześniej nie znalazłem tego w dokumentacji, ale wygląda na to, że twórcy Qt dali radę ;).

Qt rządzi!

Reklamy

Wywoływanie slotu w C++ z QML.

Moje eksperymenty z QtQuick2 spowodowały, że całkowicie zmieniłem zdanie na temat Qt5 i muszę przyznać, że minę mam coraz częściej taką 8-O.

cppslotfromqml
Po przemyśleniu możliwości model-view-controller, gdzie widok generowany jest z QML przez OpenGL, a dynamiczne z natury dzisiejszych urządzeń zmiany interfejsu zakodowane są w EcmaScript (JS) osadzonym w QML, oprócz tego łatwość wywoływania funkcji w C++ i Javie, dochodzę do wniosku, że Qt5 rządzi ;).

OptionsDialog.

TreeView na Androidzie sprawdza się średnio, zastanawiałem się jak to można by zrobić w Qt5 i przyznam szczerze, łatwo nie jest. QScrollView ma jedną podstawową wadę: póki co nie obsługuje przewijania jednym palcem i trzeba mu zostawić włączony scrollbar, na szczęście udało się go poprawić za pomocą stylów:

O kwestię layoutów mam ochotę zapytać któregoś z developerów, bo niestety są bardzo nieprzewidywalne. Nigdy nie wiadomo gdzie i jak dany widget się wyświetli. Na powyższym zrzucie odległości między obiektami są różne, a powinny być względnie spójne, bo na samym dole kontenera dodałem expander, który powinien wszystko co powyżej niego ładnie do siebie dosunąć…

Mam nadzieję, że kiedyś pojawi się spójne scrollview z obsługą single finger pan. Póki co się nie zanosi. A przecież aplikacji w QtWidgets jest niewspółmiernie więcej na wolności, niż w QtQuick.

AspeQt na Kazam Tornado 348.

A oto żywy dowód na prawidłową obsługę usb-host przez Kazam Tornado:

Przy okazji powiększyłem trochę przyciski i jeśli ekran jest mniejszy od 5″ to log jest wyłączony (wyświetla się na pasku statusu), a hbox-y wypełniają cały ekran:

Screenshot_2015-09-06-02-59-05Z małych ważnych zmian: usunąłem orientację poziomą i dzięki temu można sobie wybrać plik do załadowania w Fileselektorze w pionie (więcej się mieści).

scr-orient