Cze 07 2009

Kurs Qt - część 2 - Qt Creator

Kategorie: Kurs Qt Programowanie Qt Techblog Matthew @ 00:58:29

Ponieważ kilka osób chciało opisu jak korzystać z Qt Creator, więc dzisiaj zamiast klepać kolejne linijki kodu (no komu w weekend się chce pisać?) przygotowałem kilka obrazków pokazujących jak się poruszać po Qt Creator (jak ktoś mi podpowie jak zrobić screencast z 1920x1200 bez zabijania całej maszyny to postaram się szybko coś nakręcić). Miłego czytania.

Qt Creator ma wypełnić lukę która pozostała po Qt Designer w Qt3, a który to w Qt4 przekształcił się w czysty edytor formatek. Qt Creator zawiera w sobie wygodny edytor kodu (choć jego używanie na początku może wydawać się trudne ze względu na odmienne podejście do zarządzania oknami niż w przypadku innych IDE), debuger, dokumentację (integracja Qt Assistant) oraz edytor formatek (Qt Designer). Aktualna wersja to 1.1.1 (Windows) lub 1.1.0 (Linux i MacOS X). Sam program po uruchomieniu wygląda tak:

Główne okno Qt Creator

Pod numerem jeden znajduje się lista ostatnich projektów nad którymi pracowaliśmy (ta sama lista jest również dostępna z menu File. Na lewym brzegu (2) programu są zakładki poszczególnych paneli. Powitania (na którym właśnie jesteśmy), edycji, debugowania, listy projektów, pomocy oraz wyjścia pisanych programów (nie wiem jak to lepiej przetłumaczyć, chodzi o to co nam programy konsolowe wysypują na ekran). Jednak i tak nie będziemy korzystać z większości tych przełączników (w zasadzie będą się przełączać za nas same). Poniżej nim znajdują się przyciski do kompilacji, kompilacji z debugowaniem oraz przebudowy projektów. Jeżeli chcemy pomóc ulepszyć Qt Creatora korzystamy z przycisku Feedback (3) i ślemy swoje uwagi. Jeżeli zdarzyło się, że się wysypał, to zawsze możemy skorzystać z przywracania sesji (4). Czas utworzyć nowy projekt. Z menu File wybieramy pozycję New i ukazuje się nam takie oto okno:

Okno nowego projketu w Qt Creator

Możemy z niego wybrać dodanie nowego pliku do projektu lub utworzyć nowy projekt. Mimo że to IDE dla Qt możemy również pisać dowolne inne aplikacje. Wystarczy, że wybierzemy program konsolowy, odznaczymy moduły z Qt, a na końcu w samych plikach wyrzucimy wszystko co z Qt związane. Dla potrzeby tego kursu wybierzemy jednak aplikację okienkową. Po kliknięciu OK okno wygląda tak:

Okno nowego projketu w Qt Creator

Tutaj wpisujemy nazwę oraz wybieramy miejsce w którym katalog projektu ma się znaleźć. Po przejściu dalej ukazuje się nam taki obrazek:

Okno nowego projketu w Qt Creator

Tutaj możemy wybrać dodatkowe moduły z których chcemy skorzystać. Nie zastanawiając się za długo, przechodzi dalej:

Okno nowego projketu w Qt Creator

W tym kroku możemy wybrać nazwę dla klasy głównego okna, oraz klasę po jakiej ma dziedziczyć klasa naszego okna, nazwy plików w których ma być umieszczona oraz czy utworzyć graficznie formatkę (da nam to możliwość tworzenia jej w sposób klikany, jeżeli z tego zrezygnujemy będziemy mogli wszystko wpisać w kodzie).

Okno nowego projketu w Qt Creator

Ostatnie okno informuje nas o dodaniu plików do projektu. Klikamy Finish i przechodzimy do widoku utworzonego projektu (oczywiście utworzony kod wygląda inaczej, tutaj dałem swój bardziej rozbudowany przykład, żeby ładniej było widać. ;)):

Okno edycji kodu Qt Creator

Główne miejsce (1) zajmuje edycja kodu. Możliwe jest ustawienie trybu pracy przypominającego Vima. Możliwe jest również podzielenie tego okna na kilka mniejszych (zarówno w poziomie jak i w pionie). Niestety po takim działaniu (podzieleniu okna na 4 i załadowaniu do każdego pliku) program lubi się wywalić (ale jeżeli zmienimy rozmiary okien przed umieszczeniem w nich plików to nic się nie dzieje).

Okno edycji kodu Qt Creator

Po prawej stronie jest lista plików (2), które znajdują się w projekcie. Te które edytujemy są na liście rozwijanej oznaczonej numerem 3. Trochę odbiega to od zakładek do których wszyscy są przyzwyczajeni. Trudno mi ocenić które rozwiązanie na dłuższą metę jest lepsze. Mamy również możliwość edytowania plików spoza projektu. Służy do tego lista oznaczona numerem 4. Takie listy możemy również dzielić na mniejsze i wykorzystać je do innych celów (np. bookmarki lub lista aktualnie edytowanych plików).

Okno edycji kodu Qt Creator

Główne okno edycji udostępnia nam również listę metod, pól czy przestrzeni nazw (1). Na dole wyświetlają się nam komunikaty błędów kompilacji, wyników wyszukiwania, wyjścia naszego projektu czy wyjścia kompilatora. Po wciśnięciu Ctrl-F pojawia się nam pole wyszukiwania i zastępowania wyszukanych fraz (3).

Okno debugera kodu Qt Creator

W przypadku debugowania kodu, na dole okna, pojawia nam sie panel w którym mamy podgląd zawartościo wszystkich zmiennych oraz wątków.
Qt Creator udostępnia nam również pomoc. Mamy ją w dwóch formach. Jeżeli najedziemy kursorem na fragment kodu, który reprezentuje klasy Qt pojawi się dymek (1), który poinformuje nas, że po wciśnięciu F1 wyświetlona zostanie pomoc do tej klasy z prawej strony ekranu (2):

Okno podręcznej pomocy Qt Creator

Natomiast, jeżeli wybierzemy opcję pomocy z lewej strony, wyświetli się nam panel z całą dokumentacją Qt:

Okno pomocy Qt Creator

W przypadku edycji formatek (są to pliki *.ui), miejsce kodu zajmuje widok podobny z Qt Designera:

Okno edycji formatek Qt Creator

Oprócz integracji z programami wywodzące się z Qt Software, Qt Creator posiada również możliwość współpracy z systemami kontroli wersji, takimi jak git (źródła Qt również są trzymane w repozytorium gita, kolejny powód żeby przejść na ten wspaniały system kontroli wersji ;)), Perforce czy SVN. Niestety w przypadku gita (dla wersji 1.1.0) Qt Creator nie potrafi tworzyć repozytoriów. Mam nadzieję, że szybko pojawi się kolejna wersja która to umożliwia. Poniżej zrzut ekranu z diffa projektu:

Okno pomocy Qt Creator

Na koniec, jeżeli chcemy zmienić ustawienia Qt Creatora musimy wybrać Options... z menu Tools. Dostaniemy proste i przejrzyste okno ze wszystkimi opcjami. Myślę że nie ma sensu się nad nimi rozpisywać. Wystarczy poświęcić 10 minut i każdy poustawia wszystko wg. własnego uznania.

Okno pomocy Qt Creator

Jeżeli znaleźliście coś co jest dla was niezrozumiałe, czegoś zapomniałem opisać lub gdzieś popełniłem błąd piszcie śmiało. Możliwie szybko postaram się to dopisać/zmienić. Jeżeli chcielibyście wpis o konkretnym zagadnieniu również możecie to mi zgłosić (tak, niedługo, ale jeszcze nie teraz, opiszę Qt i wątki. ;)), czy zmianę stylu/formy tego kursu. Życzę miłej zabawy z Qt. :)

Komentarze:

  1. Airborn:

    ładnie, wygląda dużo przejrzyściej niż eclipse z wsparciem dla Qt

  2. bigfun:

    Troche już widze naklepałeś kodu w tym swoim fooaudio :)

    Jest jakaś opcja abys udostepnil swoj schemat kolorow do creatora? bo Twój wyglada całkiem przyjemnie

  3. delor:

    Dynamicznie rozwijające się IDE a nad Eclipse ma tą przewagę, że nie pożera zasobów. Wersja 1.2 wygląda smakowicie.

  4. Quintasan:

    Super!
    Czekam na kolejną część, zapowiadają się ciekawe wakacje :P

  5. ratixu:

    Także czekam na kolejne części ^_^

  6. bounty_hunter:

    Wygląda ciekawie, właśnie pobieram :)
    No i schematem kolorów się podziel! ;)

  7. Matthew:

    @bigfun: a jeszcze więcej jest do zrobienia. Podejrzewam, że nie jestem nawet jeszcze w połowie drogi do pierwszej działającej i grającej wersji.

    @delor: zaraz ściągnę, skompiluję i postaram się opisać moje wrażenia z 1.2.

    A mój schemat kolorów wygląda ta (należy go wgrać do pliku ~/config/Nokia/QtCreator.ini):

    [TextEditor]
    FontSize=9
    Link="#0000ff;invalid;false;false"
    Selection="#ffffff;#000080;false;false"
    LineNumber="#00ff00;#000000;true;false"
    SearchResult="#000000;#ffef0b;false;false"
    SearchScope="#000000;#f3f3f9;false;false"
    Parentheses="#ff0000;#292929;false;false"
    CurrentLine="#000000;#d9d9ec;false;false"
    Number="#00ffff;invalid;false;false"
    String="#00ffff;invalid;false;false"
    Type="#00ff00;invalid;true;false"
    Keyword="#ffff00;invalid;true;false"
    Operator="#ff0000;invalid;true;false"
    Preprocessor="#ff00ff;invalid;false;false"
    Label="#800000;invalid;false;false"
    Comment="#ff0000;invalid;false;true"
    Doxygen.Comment="#ff0000;invalid;false;true"
    Doxygen.Tag="#ff0000;invalid;false;true"
    DisabledCode="#a0a0a4;invalid;false;false"
    AddedLine="#00aa00;invalid;false;false"
    RemovedLine="#ff0000;invalid;false;false"
    DiffFile="#000080;invalid;false;false"
    DiffLocation="#0000ff;invalid;false;false"
    Text="#ffffff;#000000;false;false"

    Chociaż przyznam się, że brakuje mi kolorowania nazw metod i pól jak to robi Visual Studio. Byłoby to bardzo pomocne. Jak również dwukolorowanie preprocesora (na same polecenia i argumenty) też by było dobre.

  8. delor:

    @Matthew: PKGBUILD dla Arch Linux znajdziesz pod adresem http://aur.archlinux.org/packages.php?ID=25495 o ile używasz tej dystrybucji a nawet jeżeli nie to i tak skrypt instalacji może się przydać

  9. q84_fH:

    > jak ktoś mi podpowie jak zrobić screencast z 1920x1200 bez
    > zabijania całej maszyny to postaram się szybko coś nakręcić

    Spróbuj recordmydesktop. Nie wiem tylko, czy nie zarżnie Ci maszyny.
    Na pweno działa przy 1024x768px i od razu może nagrywać dźwięk z mikrofonu.

  10. delor:

    Ciekawe ile plik o takim rozmiarze by ważył.

  11. Matthew:

    Niestety, nawet na laptopie (który jest niewiele słabszy od mojego stacjonarnego) w 1280x800 widać jak się zacina i skacze. Więc z filmu nici. :(
    Ale co ciekawe sam plik nawet w 1920x1200 jakoś szczególnie dużo nie zajmuje.

  12. moki:

    A nie mógł byś po prostu zmniejszyć rozdzielczości i wtedy
    spróbować tym recordmydesktop. Przecież nawet w monitorach lcd
    możesz zejść z rozdzielczości natywnej na niższą i utrata jakości jest minimalna, a przy tego typu demonstracjach nie ma to znaczenia.

  13. pepe:

    a czy w tym jest możliwość tworzenia slotów i połączeń tak jak w QT3 Designer ? że się z menu wybiera connections wpisuje dane i śmiga ładnie

  14. Kamil Salamon:

    Trochę późno ale możesz spróbować:

    http://screencastle.com/ albo http://www.screentoaster.com/

    Pozdrawiam

Dodaj komentarz: