Zauważyłem, że coraz więcej osób chciało by się zająć programowaniem okienek wszelkiej maści, ale jako, że mają doczynienia ze mną to wszystko co jest proste i jest do tego całkiem sporo poradników w rodzimym języku, to jest to po prostu dissowane przeze mnie to postanowiłem napisać cosik o Qt. Tak na początek zajmiemy się prosta aplikacją. Nie będzie to nic przełomowego ani w jakiś sposób trudnego do wykonania. Będzie to po prostu okienko z przyciskiem, gdzie po kliknięciu w niego program nam się zamknie. Proste prawda? Okej to czas zająć się za programowanie. Jako, że jestem zwolennikiem nauki programowania prosto z kodu, to też będę starał się podobnie przekazywać wiedzę, czyli najpierw podam cały kod aplikacji, a później go omówię dokładnie. Jeszcze w tym miejscu chciałbym nadmienić, że nie będę się zajmować zagadnieniami czysto z C++, uznaje, że osoby zainteresowane Qt wiedzą co to C++ oraz wiedzą co to klasy, wskaźniki itd. Okej teraz cześć właściwa, czyli kod:
#include <QApplication> #include <QTextCodec> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); QPushButton *button = new QPushButton("Witaj ?wiecie!"); QObject::connect(button, SIGNAL(clicked()), qApp, SLOT(quit())); button->resize(300, 100); button->show(); return app.exec(); }
Teraz zajmijmy się wyjaśnianiem co znaczą poszczególne linie kodu. Tak, więc 3 pierwsze linie to nic innego jak dodanie odpowiednich objektów i ich metod do programu. Pierwsza QApplication dodaje klasę główną okna, która zajmuje się zarządzaniem całą aplikacją. Nastepna, czyli QPushButton dodaje objekt przycisku do programu, a ostatnia trzecia dodaje po prostu odpowiednie kodowanie. Następna część programu to nic specjalnego to tylko zwykła funkcja main ;) Następna linia kodu dodaje główny obiekt aplikacji, czyli po prostu tworzy wątek odpowiedzialny za działanie aplikacji. Następna część odpowiada za kodowanie znaków w aplikacji. Qt domyślnie nie obsługuje polskich znaków i innych specyficznych znaków dla każdego kraju. U nas nie ma ogonków przy znakach, a u Niemców np. nie ma kropek ;) Kolejna część tworzy objekt typu QPushButton z napisem "Witaj Świecie!". Kolejna linijka jest linijką ciekawą, ponieważ odpowiada ona, można powiedzieć za obsługę zdarzeń w programach Qt. Objekt QObject jest obiektem głównym można powiedzieć, że każdy inny objekt w Qt dziedziczy właśnie po nim, więc jest on objektem nadrzędnym. Metoda connect() przyjmuje 4 argumenty pierwszym z nich jest objekt, który wysyła sygnał, czyli w tym przypadku QPushButton, ściślej mówiąc w naszym przypadku button. Następnie wybieramy jaki sygnał emituje button w naszym przypadku jest to clicked(), czyli po prostu kliknięcie. Trzecim argumentem jest odbiorca sygnału w naszym przypadku qApp, jest to po prostu alias do głównej części porgramu. ostatni argument to slot, czyli funkcję, która ma się uruchomić po kliknięciu w naszym przypadku ma się po prostu zamknąć program. następna linia po prostu ustala wielkość przycisku i zarazem okna w naszym przypadku ;) Później nastepuje wyświetlenie. No i zwrócenie wartości. W C++ wystepuje tutaj przeważnie 0, czyli poprawne wykonanie aplikacji. w Qt zwraca exec(), czyli po prostu uruchamia aplikację ;) Tą linię można zapisać też tak:
app.exec(); return 0;
Działanie tego będzie takie samo jak zapisanie w jednej lini tak jak w kodzie, który podałem na początku ;)
Okej to tyle na tą chwilę na temat Qt, przepraszam za moją niezbyt polską polszczyznę, która władam, ale mam nadzieję, że wszystko jest w miarę jasno opisane.
Brak komentarzy:
Prześlij komentarz