Qt - вовед

Од Сподели wiki
Преработка од 14:47, 2 февруари 2007; направена од Admin (разговор | придонеси)
(разл) ← Претходна преработка | Последна преработка (разл) | Следна преработка → (разл)
Прејди на прегледникот Прејди на пребарувањето

Една од поглавните карактеристики на процедуралното програмирање претставува можноста од разделување на кодот на помали делови, условно наречени модули кои овозможуваат делови од кодот да бидат заменети побрзо и поефикасно со што се добива поголема брзина како во пишувањето, така и во преведувањето на изворниот код. Чист пример за тоа е употребата на функциите кои во C++ уште се познати и како методи. Покрај апстракцијата и енкапсулацијата на податоци, во ООП битна карактеристика е и работата со објекти, кои во C++ претсавуваат инстанци на класите. Аналогна споредба на тип променлива и променлива е класа и објект. Кај објектно ориентираниот модел има случаи кога класата претставува објект, но тоа засега не ни треба. Програмскиот јазик има свое API каде се дефинирани претходно обработувани променливи, методи, класи и сл. кои на програмерот му ја олеснуваат работата до одредено ниво. Најдобар пример за олеснување на работата на програмерите е употребата на фрејмворк за одреден програмски јазик. Тука може да се споменат, Qt за C++, Gtk за C, Visual Basic за Basic итн.

Qt Designer 4 - новата верзија на RAD алатката на Qt

Еден таков фрејмворк е и Qt.

Што е фрејмворк?

Во датотеки за вклучување (include headers), се дефинирани класи и голем број на нивни методи и променливи. Преку класите можеме да дефинираме свои објекти. Фрејмворкот впрочем е визуелна средина која со себе носи едно чудо такви класи, шаблони итн., кои програмерот ги користи како такви. Хиерархијата на програмерот, програмскиот јазик и фрејворкот замислете ги вака:

  • Програмер -> Програмски јазик -> Фрејмворк

Програмерот преку програмскиот јазик стигнува до фрејмворкот кој го користи. Така и со Qt.

Qt е повеќе-платформски фрејмворк, за C++, потполно способен за изработка на апликации, за речиси сите системски платформи, за секакви цели (од графички алатки па се до конзолски алатки иако тоа е редок случај). Колку Qt е моќен фрејмворк може да се спомне и работната околина KDE која впрочем своите библиотеки ги основува на Qt.Целокупната функционалност на оваа околина е базирана на K класите (заосновани врз Qt, изведени и наследени од Qt библиотеките) и Qt библиотеката. Qt е лиценциран под QPL (Qt Public License/QPL Public License) што е компатибилна лиценца со GPL. Работејќи под слободен систем, програмирајќи C++ и користејќи слободен фрејмворк како Qt, сфатив дека слободата нуди многу пошироко поле за осознавање и проширувања на знаењата. Слободен софтвер за работа со Qt е строго препорачано (макар што и кога би работеле под Windows со слободната верзија на Qt, сакале-несакале вие би користеле слободен софтвер).

Инсталацијата на Qt вклучувајќи ги сите алатки, библиотеки, датотеки за вклучување, пример, документација итн. не е воопшто тежок процес. Архивата е достапна на официјалната страна на компанијата што го создаде Qt - Trolltech. За изучување на Qt има цела база на HTML водичи, посебни страни на Интернет каде може да учите, па и книги кои може да си ги купите и според кои што би се воделе.

Дизајнер и развојна околина

Кога ќе инсталирате Qt од изворен код, стандардната инсталација инсталира и една алатка која може да заштеди многу време. Тоа е дизајнерот на форми за Qt - Qt Designer. Оваа алатка не е Интегрирана развојна средина (eng. IDE), таа е алатка за RAD (Rapid Application Development) работа со формите кои сакате да ги добиете за вашите апликации. Добар пример за IDE е KDevelop, развојна средина во која може да работите со над 20 програмски јазици (ако имате инсталирано поддршка се разбира) и која меѓу другото нуди и интеграција на Qt Designer и самата таа, со што би добиле, развојна средина и алатка за RAD. Искрено, оваа комбинација ретко кој ја користи, бидејќи тепа време. Јас користам Kate при програмирање поради големиот број на можности. Препорака за и вие да го разгледате.

Како функционираат Qt библиотеките

Замислете дека пишувате програма. Програмата ја пишувате во C++ и притоа користите класи, објекти изведени од тие класи итн. Вашата програма е со голем код и некои методи или променливи дефинирани во некои класи треба да ги употребите и за други објекти во други програми, т.е. да не важат само за една ваша програма, туку модуларно и глобално да ги разделите со што тие ќе се вметнуваат во други датотеки/изворни кодови. Притоа не е потребно да ги пишувате истите класи во две различни програми, но едноставно треба да направите датотеки за вклучување каде ќе стојат погоре споменатите дефинирани податоци, по што ќе можете да манипулирате и работите со нив. Ова е глобална слика за тоа што се Qt библиотеките. Покрај сето ова, тие со себе носат и други алатки кои ќе ги споменеме, кои помагаат нашиот код да премине во функционална апликација. Пример, кога пишувате програма и притоа ја компилирате, еден од најважните моменти и процеси е токму тој кога се генерира дополнителен код и дополнителни врски помеѓу објектите, бидејќи се работи за фрејмворк. Во тој процес изворниот C++ код се преведува на јазик разбирлив за C++ компилаторот при што тој нема да се збуни при преведување на Qt->C++ код. За сето тоа се грижи Meta Object Compiler. Тој прати каде во кодот има резервиран збор за него (пример Q_OBJECT) и оди да ја изврши својата работа. Хиерархијата на Qt започнува од коренот кој се вика Qt. Потоа под Qt меѓу најбитните класи се QObject и QWidget. Речиси секоја класа во Qt е наследена од QObject. Речиси секоја графичка контрола своите правила за однесување ги зема од QWidget.

Qt е средина со настани (event driven). Пример, „кога ќе се повика исклучување на програмата - предупреди го корисникот“.

Покрај овие работи што досега ги споменав постојат начини преку кои Qt манипулира со формати на слики, звук, OpenGL програмирање..накратко она што ви го нуди оваа визуелна средина, е навистина дури и повеќе од она што им треба на програмите за да функционираат совршено, едноставно затоа што Qt е направено со идеја, со отворени стандарди и правила на игра.

Инсталација на Qt

Последна верзија на Qt во овој момент е Qt 4.0.1 (документов навремено се ажурира). Симнете ја последната верзија од: ftp://ftp.trolltech.com/qt/source/.

Следете ги упатсвата за инсталирање на Qt на вашиот систем. Овој документ порано содржеше детално упатство за инсталација на Qt. Но со оглед на тоа што од верзијата 4.x натаму KDE сеуште не е компатибилно со Qt 4.x, ризикот да се објаснува инсталација на Qt што може да го оневозможи правилното функционирање на системот е прилично голем. За таа цел, само набројувам неколку команди кои треба да ги извршите при компилирање на изворниот код на Qt.

 # cd /usr/local/qt* [ако архивата сте ја отпакувале во /usr/local/]
 # ./configure -system-zlib -qt-gif -system-libpng -system-libjpeg -plugin-imgfmt-mng -thread -no-nis -no-stl -no-xinerama -no-g++-exceptions -fast
 # make

Ова треба успешно да ги инсталира Qt библиотеките на вашиот систем. Потоа треба да додадете некои правила во $HOME/.bash_profile. Подетален преглед на процесот на инсталација може да видите на страната наменета за тоа.

Пред започнување на било што прочитајте ги датотеките README и INSTALL од архивата на Qt.