Въведение
Страницата е създадена на:13 април 2019 и редактирана на:25 октомври 2023
Какво е Qt?
Накратко, Qt е нещо, с което може да се създават програми, изпълнявани на компютри и/или мобилни устройства.
Ако изпитвате желание да правите програми, които да се пишат само веднъж, а могат да работят върху различни устройства, надявам се, горното изречение да е достатъчно за да породи любопитство и да Ви накара да прегледате и други части от тази книга, посветена на работата с Qt.
В "Защо Qt?" по-долу описвам някои от характерните черти и предимства на Qt, заради, които аз използвам тази система. Нека да посоча, че Qt включва:
- (от версия 4.5.0 насам) многоплатформена интегрирана работна среда Qt Creator;
- програма assistant за четене на документацията и търсене в нея по думи и азбучен индекс;
- програма designer, за визуално проектиране на графичния интерфейс, така че Ви позволява да свършите част от работата си в по-удобния визуален маниер;
- програма linguist за превеждане на различни езици на надписите, които създаваната програма показва – ако ще правите програма, предназначена за потребители, говорещи различни езици, това е наистина забележителна възможност, аз лично не знам друга система, която да предлага толкова лесен начин за превод.
Qt се разпространява в две версии – безплатна, която се описва в тези книга, и комерсиална версия.
Повече информация, всъщност, документацията на Qt, може да намерите на адрес: doc.qt.io.
Набор от хипервръзки към различни ресурси в Интернет относно Qt поддържам на на този сайт, в колекцията от хипервръзки, раздел Qt(колекция връзки), и на адрес адрес: http://vanyog.com/_new/index.php?pid=29&lid=663
Без гаранции
Постарал съм се да представя в тази книга проверена информация за актуалните за момента версии на разглежданите програми, но въпреки това не давам гаранция и не поемам отговорност за допуснати грешки или пропуски. Не поемам юридическа отговорност за евентуални вреди, причинени от използването на тази информация.
Защо Qt?
Започнах да изучавам и после да правя програми с Qt по няколко причини:
-
Системата е безплатна, може да се изтегли от Интернет и да се използва свободно, като единственото ограничение е да се използва за създаване на програми с отворен код, в случай, че промените програмния код на самата система. Относно лицензирането на Qt вижте:
https://www.qt.io/faq - Qt е многоплатформена система и направените с нея програми могат да се компилират и изпълняват в различни операционни системи – Windows, Linux, macOS, iOS, Android. След като дълго време пишех програми с Delphi само за Windows и много пъти получавах запитвания дали някоя от тях може да се използва и в Linux или на Mac, тази черта на Qt се превърна за мен в неустоимо изкушение.
- Ако ползвате Qt Вие, всъщност, работите с инструменти за писане на програми на C++ - компилирате ги и ги свързвате с помощта на C/C++ компилатор и т.н. В началото това малко ме смущаваше, защото не бях програмирал на C++, а и нямах особено силно желание да науча този език, докато все още имах възможност да правя задоволяващи ме програми на езици, които вече знаех. Бързам да кажа, обаче, че да се пишат програми с Qt е достатъчно да се научи добре само Qt. Системата е достатъчно богата и покрива широк спектър от практически нужди. Разбира се, след продължителна работа с Qt постепенно се придобиват и знания по C++, а и неусетно възниква желание да се търси повече информация и отделно да се учи и C++.
- За разлика от други системи с отворен код, Qt се доставя с перфектна, винаги актуална и пълна документация. Документацията включва всички необходими подробности за системата, както и кратки учебници. Всички класове не само са описани, но са дадени примери как да се използват. Тези примери са изключително ценни, защото дори може с Copy – Paste да се ползват наготово.
Защо реших да напиша тази книга?
Иска ми се да успея с тази книга да облекча хората, които като мен са решили да използват Qt. Да споделя малките "открития", които съм направил за себе си и които използвам. Както пише Ерик Реймънд в "Как да стана хакер": "Никой и никога не трябва да решава един проблем два пъти. Творческият мозък е ценен и ограничен ресурс. Не трябва да го пилеем за откриване на колелото, когато наоколо има толкова много чудесни нови проблеми."
Но има и още една причина – пишейки тази книга, опитвайки се да обясня различни въпроси, изпробвайки предложенията, които правя в нея и т.н., по-ясно установявам дали наистина разбирам тези въпроси. Често се налага да препрочитам Qt документацията, да търся в Интернет и да продължавам да се уча. Намирам това занимание за полезно.
Какво съдържа тази книга?
Тази книга съдържа конкретни, практически проверени от мен предложения как може де се ползва Qt; как да се преодоляват някои вероятни затруднения и отговори на въпроси от рода на "Как да …?". Именно предложения - това са начините по които аз използвам Qt и решенията, които на мен ми се е наложило да открия, за да преодолея затруднения, които съм срещал. Много е вероятно това да не са нито достатъчно елегантни, нито прецизни решения; в много случаи това са просто първите идеи, които са сработили и са ми позволили да си реша съответния проблем. Решавам се да ги опиша в тази книга, защото мисля, че наличието на работещо решение, макар и не най-оптимално, все пак е по-добро от липсата на решение, а и на български език не знам да има книга, посветена на Qt.
Старая се да описвам най-новата за момента версия на Qt, но се оказва, че скоростта, с която се публикуват нови версии е по-голяма от тази, с която аз мога да актуализирам изцяло ръкописа си. Версиите, които споменавам са тези, които са били актуални, когато последно съм редактирал съответното място от този ръкопис. На различни места, ще забележите, че се споменават различни версии.
Програмирането често изисква, не само знания върху съответния програмен език, но и познаване на операционните системи, както и друг софтуер. Където ми се е струвало, че се налага, в тази книга съм засегнал и подобни въпроси – за начина на работа на системите, за използването на други програми и т.н.
Какво не съдържа тази книга?
Тази книга няма дълго въведение, което да се опитва "убедително" да Ви обясни, че е много необходимо да я прочетете и колко зле ще бъде ако не го направите.
Няма указание за кого е предназначена (начинаещи или напреднали, професионални програмисти или любители на програмирането). Разчитам на това, че всеки щом я прелисти и прочете няколко откъса, може бързо да прецени дали ще му е полезна.
Не подражава на маниера на поднасяне на материята Qt, от други книги, защото не си поставя за цел да конкурира тези книги или да замести документацията на Qt. Много от предложенията, поднесени в книгата са подсказани от описания, намерени в документацията и съм се старал винаги да посочвам тези места от документацията, както и други източници в Интернет.
Въпреки заглавието книгата няма претенция да бъде изчерпателен учебник по програмиране. За да научите C++ ще трябва да използвате други източници.
Писането на тази книга беше започнато през 2007 г., преди създаването на интегрираната работна среда Qt Creator, ето защо дълго време в книгата не се разглеждаше начина за работа с тази среда. Последното започна да се засяга едва в редакциите, започнали през ноември 2015 г.
Със сив шрифт, като този, са отбелязани места, които може да се считат за остарели. Предстои тези места да бъдат осъвременени или премахнати в бъдещите редакции.
Предишна страница: Програмиране с Qt
Следваща страница: За да започнете