Qt Quick – Dwie proste aplikacje

Qt Quick – Dwie proste aplikacje

W zeszłym semestrze w ramach ćwiczeń miałem do przygotowania kilka aplikacji. Większość projektów, które obecnie tworze staram się oprzeć o szkielet programistyczny Qt. Tak było i w tym przypadku. Pierwszy program przygotowałem w ramach przedmiotu wizualizacja informacji i jego zadaniem było przedstawienie metody Buziek Chernoffa. Druga aplikacja została oddana na ćwiczenia z systemów wbudowanych. Ćwiczenia te nie oddawały do końca programu wykładów, ponieważ w praktyce większość rówieśników pisała zwyczajne aplikacje w Javie. Ja wybrałem inny, równie przenośny zestaw narzędzi. Udostępniam źródła tych dwóch różnych projektów. Nie należy ich traktować jako coś wzorcowego, ponieważ jak to zwykle bywa z projektami na uczelnie kod był pisany w pośpiechu. Oba programy wykorzystują technologię Qt Quick. Były to moje pierwsze aplikacje powstałe w oparciu o tą technologię. Dzięki nim mogłem się wiele nauczyć.

Qt Quick

Qt Quick jest zbiorem technologi umożliwiającym tworzenie w prosty oraz szybki sposób zaawansowanych, bogatych wizualnie interfejsów oraz aplikacji. Za pomocą danej technologi możliwe jest przygotowanie kompletnej aplikacji, bez znajomości skomplikowanego języka takiego jak C bądź C++. Podczas pracy z Qt Quick operuje się językiem skryptowym QML oraz JavaScript. Zaawansowani użytkownicy mogą łączyć tą technologię z natywnym kodem w sytuacjach, w których bardzo istotna jest duża wydajność.

Jak przebiega wytwarzanie w danym środowisku? Najlepiej zobrazuje to drobny przykład:

import QtQuick 1.0

Rectangle
{
    width: 200
    height: 200
    color: "blue"
    onColorChanged: console.log("Zmieniono kolor:", color)
    Image
    {
        source: "obrazek.png"
        anchors.centerIn: parent
    }
}

W powyższym przykładzie zaimportowano standardową wersję modułu QtQuick 1.0. Wraz z danym posunięciem programista uzyskał dostęp do zawartych tam komponentów, takich jak Rectangle, Image, MouseArea, Text, TextInput, Behavior i wielu, wielu innych. Kolejno może je umieszczać na scenie i manipulować ich właściwościami, metodami, sygnałami oraz slotami. Tam gdzie jest potrzebna bardziej zaawansowana logika, można się posłużyć językiem JavaScript. Tak też się stało w powyższym przykładzie. Na scenie umieszczono niebieski prostokąt oraz w jego wnętrzu wyśrodkowano obrazek.

Kolejno na zdarzenie onColorChanged zareagowano instrukcją JS console.log.

Qt Quick w wersji pierwszej wykorzystuje do rysowania grafiki klasę QPainter. Mimo iż QPainter słabo sobie radzi z obsługą akcelerowanego API, nawet renderowanie w pełni programowe daje zadowalające efekty. Animacje uzyskane w oparciu o tą technologię są płynne i nie możemy im wiele zarzucić.

Przygotowane programy

Chernoff Faces – Poniższa aplikacja umożliwia wczytywanie plików xml, w których zapisano scenę wraz z wizualizacją metodą Buziek Chernoffa.

Windy – Na ten projekt składają się dwa programy. Klient oraz serwer. Serwer odpowiada za zarządzanie windą, natomiast aplikacje klienckie pokazują stan serwera oraz umożliwiają interakcję z nim. Całość opatrzona jest przyjazną grafiką oraz animacją.

Komentarze

  • suncoder05-09-2011

    Ciekawe przykłady technologii QtQuick. Do „Windy” sam przygotowałeś grafikę?

  • Marcin Baszczewski06-09-2011

    Hej. Nie jestem grafikiem to też posłużyłem się obrazkami znalezionymi w sieci.

Chcę dodać komentarz