ИД "Мой компьютер"   "Игроград"   "Реальность фантастики"   Ассамблея "Портал"
Сделать стартовой   

 
Домашняя страница
Расширенный поиск
E-mail

 

N 16 (447)




МОЙ КОМПЬЮТЕР




  Новости:

 
МК
Украина
Игры
Интернет
Железо
Софт
Пресс-релизы

  Статьи:

 
Уголок читателя
Прочее
Имеющий уши
Программирование
Интернет
Железо
Софт
Игры


 
КОНКУРСЫ



Правила конкурсов

Конкурс "АВЧ"

Рейтинг победителей


ОПРОС

Вы посещаете нас:
первый раз
1-2 раза в месяц
1-2 раза в неделю
1-2 раза в день
более 2-х раз в день Что привело Вас к нам?
поиск информации
интерес к статьям
интерес к новостям
любопытство
реклама
другое








боулинг

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua













Argumentum ad ignorantiam!

 

статьи
Программирование



 

Прочее  
Visual basic  
Delphi  
C++  
Интернет приложения  
Теория  




    Прочее


Бібліо-графія

Сергій БУРАЧЕК
N 5 (436) 27.01.2007


За останні два роки МК кілька разів висвітлював тему програмування з використанням бібліотеки віджетів (графічних елементів) Qt. Сьогодні я хочу розповісти про програму, що спростить процес написання програм на відносно новій, четвертій версії Qt. Зустрічайте — інтегроване середовище розробки (IDE) Qdevelop.

Але для початку давайте пригадаємо, що таке Qt і з чим його готувати... тобто компілювати :-).

Qt (скорочення від Quasar Technologies — старої назви компанії Trolltech, що розробила дану бібліотеку) — це бібліотека, або, як частіше висловлюються, framework, програмна оболонка для створення кросплатформенних графічних програм з використанням C++ як мови програмування. «Перші камені» Qt були закладені в 1988 р., а перша публічно доступна версія побачила світ в 1995 році. Останній на сьогодні реліз — 4.2.2, але всі підверсії 4.х для зручності будемо називати коротше — Qt 4.

Не можу не згадати про чи не основну умову, що забезпечила популярність бібліотеки. Справа в тому, що вона є абсолютно безкоштовною, більше того, має відкриті коди. Але це тільки в тому випадку, якщо ви маєте намір розповсюджувати написану програму на умовах ліцензії GPL — іншими словами, якщо ви згідні надати вихідні коди будь-якому користувачеві вашої програми. Якщо ж метою є створення закритої програми, котра розповсюджуватиметься тільки у вигляді бінарних файлів, необхідно придбати комерційну версію Qt. Вартість її, одразу попереджу, немала, але вона окупиться першим же серйозним проектом. Натомість вам стануть доступними деякі корисні можливості, відсутні у вільній версії.

Де ми можемо зустріти Qt і в чому являє себе її універсальність? Мабуть, користувачеві Linux чи *BSD довго пригадувати не доведеться — добра половина графічних програм для цих систем написана з використанням Qt, згадаймо хоча б оточення робочого столу KDE. Інші ж, мабуть, користувалися такими програмами як Opera, Skype, SIM — основою їх інтерфейсу теж є та сама Qt. До речі, от вам і доказ незалежності від платформи — в будь якій операційній системі зазначені вище додатки виглядають однаково. Адже код програми, написаної на Qt, ви запросто скомпілюєте хоч під Windows, хоч під Linux, хоч під MacOS — звичайно, якщо не будете використовувати специфічні для якоїсь ОС функції чи системні виклики. Якщо зацікавились — в кінці статті я зібрав посилання на сайти, котрі повинні стати рідними для програміста-Qt’шника :-).

Одразу скажу — в мене на комп’ютері «живе» тільки одна ОС — Kubuntu Linux, тому мова йтиме саме про цю систему, хоча, повторюю, все (чи майже все) сказане стосуватиметься і сімейства Windows.

Отож, після довгого, але необхідного відступу повернемось до нашої основної теми — середовища програмування Qdevelop. Чому ми розглянемо саме це середовище, і чим воно відрізняється від іншого IDE — Kdevelop, що входить до складу практично всіх сучасних дистрибутивів Linux? По-перше, Kdevelop в поточній версії практично не пристосований до роботи з Qt 4: оскільки актуальна версія KDE базується на Qt3 — відповідно, немає інтеграції такими невід’ємними частинами Qt 4 як Designer (засіб для візуального створення інтерфейсу), Assistant (розгорнута довідка по всіх класах та їх властивостях з багатьма прикладами), не реалізована підсвітка синтаксису для нових класів... По-друге, Kdevelop все-таки прив’язаний до бібліотек kdelibs, тобто користувачі Windows залишаються «поза бортом». Альтернатива для останніх — інтеграція Qt в Microsoft Visual Studio. Щоправда, ця опція присутня тільки в комерційній версії . Можна знайти для цієї мети сторонні плагіни, але вони не дадуть такої функціональності. Знов-таки, Visual Studio зовсім не є засобом, невимогливим для ресурсів. Як на мене, краще все ж користуватись інструментами, «заточеними» під виконання певної роботи — тільки вони можуть сумістити необхідну функціональність з мінімумом надлишкових компонентів та опцій. Натомість, Qdevelop є невеликим (архів з кодами Qdevelop важить всього 2 Мб, скомпільований бінарник — 2.7 Мб) та дійсно кросплатформенним — він може використовуватись в будь-якій ОС, в якій встановлена четверта версія Qt (за допомогою якої він, власне, і є написаним) та відповідний компілятор ( gcc для Linux/MacOSX та MinGW для Windows), оскільки розповсюджується програма у вигляді як інсталятора чи бінарного пакета, так і вихідних кодів.

Сторінка проекту — qdevelop.org ( рис. 1).

Рис. 1.

Остання на момент написання версія — 0.21. Як видно, проект молодий, але вже цілком готовий до роботи. Звичайно, є недоліки, про них я скажу трохи пізніше. Отже, скачуємо та встановлюємо Qdevelop. Якщо вирішите компілювати власноруч — майте на увазі, що процес не зовсім стандартний. По-перше, в архіві ви не знайдете мейкфайла — його необхідно згенерувати командою qmake. Далі за допомогою make компілюємо, а от make install запускати не доведеться — просто скопіюйте бінарник з директорії bin в зручне для вас місце, наприклад в ~/bin. Що ж, запускаємо.

Не можу одразу не відмітити швидкість запуску — на моєму далеко не найпотужнішому комп’ютері цей процес займає 3–4 секунди, в той час як для Kdevelop для цього потрібно а 12 секунд. Звичайно, останній є набагато універсальнішим інструментом, але саме за це його не люблять апологети Unix — згідно прийнятих тут традицій, програма повинна виконувати одну функцію, зате — якнайкраще.

Основне вікно ( рис. 2) має стандартний для такого роду програм вигляд.

Рис. 2.

Зліва розташований браузер файлів чи класів (в залежності від активної вкладки). Внизу можемо спостерігати вивід компілятора та самої програми, повідомлення при відладці програми та іншу необхідну інформацію. І звичайно, основну «територію» займає власне редактор коду. Чим він може нас порадувати? Майже повним «джентльменським набором» сучасного редактора вихідних кодів, наприклад — підсвітка синтаксису, нумерація рядків, відкриття Qt Assistant та автоматичний пошук у ньому поточного ключового слова, доповнення коду (рис. 3), яке, щоправда, чомусь не завжди спрацьовує — будемо сподіватись, в наступному релізі ситуація покращиться. Також поки що не реалізоване згортання блоків коду — це, власне і все, на що можна поскаржитись.

Рис. 3.

Приємною особливістю Qdevelop є те, що в якості файлів проекту використовуються стандартні Qt’шні .pro-файли, натомість деякі інші редактори намагаються створити свої специфічні, наприклад *.kateproject, *.kdevelop та ін. Це означає, що чи то ви, чи то люди, котрі розробляють програму разом із вами, але використовують інші засоби, зможуть вносити всі необхідні зміни в .pro, і Qdevelop автоматично «підхопить» їх.

Щоби ближче познайомитись з можливостями середовища, створимо новий проект ( рис. 4).

Рис. 4.

Одразу ж можна вибрати типи інтерфейсу (основне чи діалогове вікно), проекту ( Debug чи Release), а також дати необхідні назви основним класам та їх нащадкам). Пізніше до розгорнутих опцій можна добратися через меню ( Project > Properties of). Одразу після створення проекту оглядаємо браузер файлів і бачимо не тільки .cpp- та .h-файли, але й файл інтерфейсу .ui ( рис. 5).

Рис. 5.

Згідно нової «філософії» Qt, в четвертій версії розробники абсолютно відокремили процеси створення інтерфейсу та написання коду. Якщо в Qt3 можна було написати нескладну програму, користуючись тільки засобами Qt Designer’a, то тепер останній дозволяє лише «намалювати» інтерфейс та зв’язати сигнали з слотами — генерацію ж відповідного файлу заголовків та наслідування класу покладено на плечі програміста. Qdevelop спрощує цю задачу, дозволяючи прямо з контекстного меню (правий клік на файлі діалогу, рис. 6), крім загальних операцій, наслідувати клас, переглянути інтерфейс, та запустити Qt Designer для його редагування. Але для початку спробуйте просто скомпілювати проект (клавіша  F7). Якщо у виводі ви не помітили помилок чи попереджень компілятора (а їх не повинно бути, якщо ви ще нічого не змінювали в коді, а також якщо компілятор та Qt коректно встановлені) — запускайте своє новонароджене немовля (комбінація Shift+F5 чи відповідна кнопка на панелі інструментів). Повинно з’явитись порожнє вікно — все, початок покладено, залишилось дописати все інше :-).

Рис. 6.

Чим ще може похвалитись Qdevelop? Наприклад, вмінням працювати з зовнішніми інструментами — відладчиком gdb, утилітою ctags та іншими ( рис. 7).

Рис. 7.

Приємно, що розробники вирішили не винаходити черговий велосипед, а скористатись загальновідомими засобами, спростивши задачу собі, а також користувачеві, якому не потрібно завантажувати та компілювати зайві мегабайти коду. Також у версії 0.21 з’явилась можливість роботи з плагінами, і хоч на даний момент на сайті доступний тільки один, через кілька місяців, думаю, ситуація зміниться докорінно, та і ніхто не завадить вам написати дещо своє :-).

Ну що ж, час підводити підсумки. Перед нами — перспективний проект, зручна, невимоглива кросплатформенна програма, що стане в нагоді програмістам, котрі обрали для себе Qt 4. Так, реалізація ще далека до ідеальної — і номер версії вказує на це, але принаймні в мене за два місяці роботи не було жодного збою. На «сирість» вказує тільки наявність нереалізованих функцій — вже згадане згортання коду, коментування рядка за допомогою комбінації клавіш, інтеграція з системою керування версіями. Хоча особисто мені це не стало на заваді використання Qdevelop як основного середовища програмування.

Мало не забув — ось обіцяні раніше лінки:

• trolltech.com — сайт компанії Trolltech. Тут завжди знайдете найсвіжіші версії бібліотеки, а також офіційну документацію та приклади;

• www.qtcentre.org — англомовний ресурс, присвячений Qt. Жвавий форум, в якому вам з великою імовірністю допоможуть вирішити проблему чи дадуть відповідь на запитання — якщо воно, звісно, стосуватиметься теми :-);

• qtlib.ru — російськомовний аналог попереднього ресурсу. Звичайно, тут все набагато зрозуміліше, але і відвідувачів, на жаль, менше;

• prog.org.ru/forum/forum_14.html — також російськомовний форум, точніше, вітка форуму програмістів, присвячена Qt;

• qt.osdn.org.ua — чи не єдина вітчизняна сторінка Qt’шників. На жаль, ресурс не настільки пожвавлений, як того хотілося б, але ж його наповнення — наша з вами справа, чи не так? :-)

От і все на сьогодні. Якщо щось незрозуміло — запитуйте e–mail’ом. Якщо тема програмування з Qt зацікавить, я готовий продовжити її. Щасти вам! Мобильные телефоны Sony Ericsson







Расширенный поиск 
 

О проекте  Рекламодателям  Карта сайта  Контакт  Обратная связь 

© ИД "Мой компьютер"®, 1998-2004