C++11 #5: Nawiasy kątowe a argumenty szablonów.

Dzisiejszy temat dotyczy jednego z najbardziej zdumiewających problemów poprzednich standarów języka C++. Dlaczego zdumiewających ? Między innymi dlatego, że udało mu się przetrwać dzielnie kilkanaście lat (!), pomimo swojej nieskomplikowanej natury – chodzi o podwójne nawiasy kątowe.

Ale jak to się stało ?

Spójrzmy na poniższy kod:

Czytaj dalej

Qt Tutorial #5: System zasobów biblioteki Qt.

System zasobów biblioteki Qt.

W przypadku prawie każdego programu zachodzi potrzeba dostarczenia, wraz z plikiem wykonywalnym, dodatkowych zasobów.

Dobrym przykładem są obrazy wykorzystywane w graficznym interfejsie użytkownika. Możemy oczywiście dostarczać obrazy jako część instalatora, który rozpakuje je podczas instalacji do katalogu aplikacji. Ma to jednak swoje wady: jest dość uciążliwe i może nie wyglądać profesjonalnie.

Czytaj dalej

C++11 #4: Wskaźnik pusty – słowo kluczowe nullptr.

Wskaźnik pusty – nullptr.

Standard C++11 zajął się na poważnie jedną z kluczowych kwestii w kontekście języka – oznaczaniem wskaźników pustych (nieważnych). Nowościami są tutaj słowo kluczowe nullptr, oznaczające wskaźnik pusty oraz typ wskaźnika pustego, czyli std::nullptr_t.

nullptr jest literałem, który powinien być używany w kodzie źródłowym i oznacza wskaźnik pusty. Czym różni się on od wartości NULL, która wywodzi się z języka C i była do tej pory stosowana również w C++ ?

Czytaj dalej

Qt Tutorial #4: Sygnały i sloty.

Sygnały i sloty.

Sygnały i sloty to pomysł na komunikację pomiędzy różnymi obiektami w bibliotece Qt. To pomysł odmienny od tzw. wywołań zwrotnych, stosowanych w większości konkurencyjnych do Qt framework’ów. Jak zobaczymy w dalszej części artykułu, sam system jest dość intuicyjny i wygodny – jest to jedna z funkcjonalności, którymi biblioteka Qt na pewno się wyróżnia.

Wprowadzenie.

Dobrym przykładem omawianego tematu jest taka sytuacja: Użytkownik klika przycisk Zamknij, a my chcemy, żeby po kliknięciu została wywołana funkcja close, która zamknie okno. Ale skąd program ma wiedzieć, że Użytkownik coś kliknął i co w takiej sytuacji zrobić ? Właśnie do tego rodzaju komunikacji będziemy używać sygnałów i slotów. Mechanizm obecny w Qt jest bardzo prosty w użyciu i wymaga niewielkiej ilości nieskomplikowanego kodu.

Czytaj dalej

Qt Tutorial #3: Główne okno aplikacji. Wstęp do sygnałów i slotów.

QMainWindow jest jedną z najważniejszych klas framework’a Qt – reprezentuje główne okno aplikacji. Klasa posiada swój własny układ, do którego możemy dodać takie elementy, jak menu (QMenuBar), pasek narzędzi (QToolBar), czy też pasek stanu (QStatusBar). QMainWindow będzie w zasadzie głównie wykorzystywaną klasą, jeśli będziemy chcieli realizować główne okno nowej aplikacji.

Poniższy rysunek przedstawia wygląd głównego okna aplikacji, wraz z typowymi elementami:

Czytaj dalej

Qt Tutorial #2: Pierwszy program z graficznym interfejsem użytkownika (GUI).

Stało się – jesteśmy szczęśliwymi posiadaczami frameworka Qt, zainstalowanego w naszym systemie operacyjnym (Jak to zrobić ?). Przyszedł więc czas na naszą pierwszą aplikację, która będzie korzystać z biblioteki Qt i posiadać graficzny interfejs użytkownika (ang. GUI, Graphical User Interface).

W tym miejscu krótka informacja – będziemy korzystać z QtCreator’a, zintegrowanego środowiska programistycznego, dostarczanego razem z biblioteką Qt. Qt Creator to świetne narzędzie – intuicyjne i zintegrowane ze wszystkimi funkcjonalnościami, dostarczanymi z framework’iem. Jednym słowem to najlepszy wybór, jeżeli piszemy aplikację wykorzystującą bibliotekę Qt.

Czytaj dalej

C++11 #2: Słowo kluczowe auto.

Zaczniemy od prostszych zmian. Weźmy pod uwagę słowo kluczowe auto.

Umożliwia ono w C++11 tzw. automatyczną dedukcję typu. Oznacza to, że w ściśle określonych sytuacjach, możemy zastąpić konkretny typ słowem kluczowym auto, a kompilator automatycznie określi prawidłowy typ zmiennej.

Czytaj dalej

C++11 #1: Nowości w języku C++ (wstęp).

12 sierpnia 2011 roku komitet standaryzacyjny zaakceptował standard języka C++ o nazwie C++11, który zastąpił wcześniejsze wersje (C++98, C++03).

Nowy standard języka – C++11.

Nowa wersja, wydana po 8 latach od ostatnich zmian (a tak naprawdę po 13 latach – C++03 był jedynie drobną aktualizacją), wprowadziła wiele zmian i nowości, zarówno w samym rdzeniu języka, jak i w jego bibliotece standardowej.

Oczywiście jedno z głównym założeń pozostało niezmienione – nowa wersja języka jest kompatybilna wstecz.

Czytaj dalej

Qt Tutorial #1: Wstęp – kilka słów o bibliotece Qt.

Tytuł mówi wszystko – na blogu będą się pojawiać wpisy z serii Qt Tutorial. Chciałbym w ten sposób oddzielić i skategoryzować wpisy dotyczące biblioteki Qt, które nie są newsami na temat biblioteki, a raczej krótkimi poradnikami (przeważnie z załączonym i opisanym kodem źródłowym). Plan jest taki, żeby złożyło się to w swojego rodzaju kurs dotyczący frameworka – zobaczymy, jak to będzie wyglądać za jakiś czas. W każdym, razie plan jest taki, żeby zacząć od podstawowych tematów. Dziś zaczynamy od kilku słów na temat Qt.

Czytaj dalej