Mar 13 2010

Kurs Qt - część 7 - TCP

Kategorie: Kurs Qt Programowanie Qt Techblog Matthew @ 05:26:53

Z racji zaspania na dzisiejsze zajęcia (cała jedna godzina wykładu!) oraz pozwolenia używania na laborkach z wirtualnych zespołów roboczych (sponsorowanych przez prof. dr hab. inż. Bogdana Wiszniewskiego i dr inż. Jerzego Dembskiego) własnej technologii (czyli wcale nie trzeba pisać pod Windowsem w WinAPI (albo czymś takim), jednak robiąc przy okazji spory narzut godzinny na sklecenie własnego programu) macie możliwość poczytania jak wykorzystywać Qt do przesyłania danych przez sieć z wykorzystaniem protokołu TCP/IP. No... koniec tej wazeliny, czas wziąć się za coś bardziej efektywnego (i efektownego). Zrobimy prosty chat (nie, mój projekt na te laborki polegał na czymś innym).

Czytaj dalej...

Lut 24 2010

Kurs Qt - Część 6 - Rysowanie

Kategorie: Kurs Qt Programowanie Qt Techblog Matthew @ 01:11:49

6. (z dużym opóźnieniem) część kursu Qt. Z racji, że ostatnio zostałem zmuszony do rysowania grafów itp. rzeczy (na szczęście można było wybrać technologię) to dziś przedstawię właśnie rysowanie (proste, nie grafów, za dużo nerwów mnie to kosztowało ;P) w Qt. Przy okazji mały pokaz jak zrobić menu kontekstowe

Czytaj dalej...

Lis 27 2009

Kurs Qt - Część 5 - Layout

Kategorie: Kurs Qt Programowanie Qt Śmietnik Techblog Matthew @ 21:51:16

Kolejna część kursu Qt. Tym razem zajmiemy się layoutami, które pozwolą nam uporządkować widgety w oknach naszych aplikacji. Przy okazji załatwią nam sprawę "ładnego" wyglądu okna w przypadku jego rozciągania.

Czytaj dalej...

Lip 26 2009

Kurs Qt - Część 4 - Wątki

Kategorie: Kurs Qt Programowanie Qt Techblog Matthew @ 16:22:35

Kolejna cześć kursu Qt. Tym razem będzie o wątkach. Niestety, praca i brak niebezpieczeństwa zawalenia egzaminów strasznie rozleniwiają, więc dopiero teraz udało mi się zebrać i coś napisać (nie lubię wakacji, masa czasu a nic nie udaje się zrobić ;)). Stworzymy proste wątki, będzie to tradycyjny przykład producenta i konsumenta. Na początku z wyścigami, później postaramy się przed nimi zabezpieczyć. A więc do dzieła:

Czytaj dalej...

Cze 14 2009

Kurs Qt - Część 3 - Zasoby

Kategorie: Kurs Qt Programowanie Qt Techblog Matthew @ 16:02:12

W tej części zrobimy coś pożytecznego. Napiszemy notatnik. Ale nie byle jaki. Będzie miał ikony! :D A co za tym idzie nauczymy się dołączać zasoby do naszej aplikacji. Czas przygotować ikony, które dołączymy do naszej aplikacji z poprzedniej cześciu kursu.

Plik zasobów to zwykły xml, który ma w sobie ścieżki do plików które mają być później dołączone do naszego programu. Plik zasobów wygląda tak:

  1. <RCC>
  2.         <qresource prefix="/" >
  3.                 <file>copy.png</file>
  4.                 <file>cut.png</file>
  5.                 <file>paste.png</file>
  6.                 <file>open.png</file>
  7.                 <file>save.png</file>
  8.                 <file>new.png</file>
  9.         </qresource>
  10. </RCC>
  11.  

Jak widać składnia jest bardzo prosta. W przypadku Qt Creator mamy odpowiedni edytor, który w sposób klikany, załatwia za nas całą pracę (dodaj pozycję, wskaż plik, ciesz się życiem ;)). Nasz plik nagłówkowy się niewiele zmienił. Trochę go posprzątamy (wyrzucimy etykiety i przyciski, żeby zrobić miejsce pod pole edycji teksty, które dodamy w przyszłych częściach kursu) i dodamy wskaźniki do obiektów pasków narzędzi (linie 25. i 26.).

Czytaj dalej...

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:

Czytaj dalej...

Cze 03 2009

Kurs Qt - część 1 - sygnały, sloty i własne widgety

Kategorie: Kurs Qt Programowanie Qt Techblog Matthew @ 20:27:16

Miał być w piątek, więc wrzucam dzisiaj. ;) Z tej części kursu poznamy klasę głównego okna w Qt, jak tworzyć własne widgety oraz na czym polega mechanizm sygnałów i slotów. Miłej lektury.

Główne okno w Qt reprezentuje klasa QMainWindow. Jest to chyba najczęściej dziedziczona klasa. Pozwala nam na umieszczanie menu oraz statusu. Najprostszy program z QMainWindow wygląda tak:

mainwindow.hpp:

  1. #ifndef MAINWINDOW_HPP
  2. #define MAINWINDOW_HPP
  3.  
  4. #include <QMainWindow>
  5.  
  6. class MainWindow : public QMainWindow
  7. {
  8. public:
  9.         MainWindow();
  10. };
  11.  
  12. #endif // MAINWINDOW_HPP
  13.  

Czytaj dalej...

Cze 01 2009

Kurs Qt - wstęp

Kategorie: Kurs Qt Programowanie Qt Techblog Matthew @ 19:54:14

Przed-wstęp:

Już od dawna miałem zamiar zacząć pisać taki tutorial (obok kursu C++, ale ten chyba zacznę jak wyjdzie C++0x). Głównym powodem jest brak takich materiałów w polskiej sieci. Moux nie napisał nic nowego od 4 lat (i nie sądzę żeby miał ochotę to reaktywować). Z kolei Biblioteka Riklaunima traktuje głównie o wykorzystaniu Qt w Pythonie, czyli PyQt4. Drugim powodem jest fakt, że nie ma lepszego sposobu na podniesienie swojej wiedzy jak uczenie innych. Poza tym ten blog, z założenia, ma być blogiem technicznym (poza moimi własnymi pierdołami, które są zabawne lub ważne dla mnie samego) skupionym wokół programowania w C++, Qt czy pokazujące różne zagadnienia z okolic KDE, Linuksa jako takiego, czy mojego własnego fooaudio (uprzedzając pytania: fooaudio się rozwija, powoli (ze względu na moje ostatnie problemy osobiste oraz nadchodzącą sesję), jednak idzie do przodu. I jak na ironię im wolniej idzie tym lepszy kod powstaje. Jednak już niedługo projekt powinien nabrać sensownego tempa i gdzieś w okolicach połowy lipca o nim napiszę).
Na początku kurs będzie obejmował kilka prostych rzeczy (prezentacja kontrolek, ustawianie ich, tworzenie własnych, sygnały i sloty), później zajmę się bardziej zaawansowanymi rzeczami, niekoniecznie związanymi z GUI (aplikacje sieciowe, wielowątkowość, multimedia). Jest także opcja, że jeżeli interesowałby was jakiś konkretny temat, to postaram się go możliwie szybko opisać. Dajcie mi wtedy znać albo w komentarzach, albo przed jid/e-mail (znajdziecie je w dziale "O mnie"). Miłej lektury, mam nadzieję że komuś to się przyda. ;)

Czytaj dalej...