Що таке QT: установка, особливості роботи, відгуки програмістів
Опубликованно 23.03.2019 09:09
Крос-платформна структура QT (КП-структура) використовується в якості графічного інструментарію, а також корисна при створенні додатків CLI. Працює на трьох основних настільних ПК, мобільних ОС (Symbian, Nokia Belle, Meego Harmattan, MeeGo) і на вбудованих пристроях, здатних сприймати подовження інтервалу QT. Історія створення програми
Розробка QT була розпочата в 1990 році норвезькими програмістами Ейріком Чамбе-Енг і Хаавардом Нордом. Їх компанія Trolltech продавала ліцензії QT і надавала технічну підтримку. Сьогодні фірма носить назву The QT Company і є дочірньою компанією Digia Plc, розташованої у Фінляндії. Хоча вона є основним драйвером, тепер розробляється більш великим альянсом.
Він складається з багатьох фірм та окремих осіб по всьому світу і працює використовуючи мерітократичної модель управління. Кожен, хто хоче, може приєднатися до команди. Є багато способів внести особистий внесок у проект QT. Що таке дія передбачає? Це, наприклад, написання коду або документації для фреймворку, повідомлення про помилки або надання допомоги іншим користувачам на форумі і підтримка сторінки в інтернеті.
Хоча будь-яка система побудови може використовуватися з програмою, вона має власний qmake. Це незалежний від платформи інтерфейс заснованих на платформі систем збирання, таких як GNU Make, Visual Studio і Xcode. CMake також є популярною альтернативою для розробки проектів. Не багато знають, що така QT доступна з різними ліцензіями. Мова йде про комерційне і безкоштовному програмному забезпеченні в декількох версіях GPL і LGPL.
Підтримка QT 4 була інтегрована багато років тому, а QT 5 забезпечила підтримку на ранній стадії. Нещодавно вийшов новий проект - QT Suite Build aka Qbs. Це система складання на основі QML, яка також підтримує Javascript і упаковку CMake. Інтегрована середовище розробки
КП-структура поставляється зі своєю інтегрованою середовищем розробки (IDE) під назвою QT Creator, працює на Linux, OS X і Windows. Вона пропонує інтелектуальне завершення коду, підсвічування синтаксису, інтегровану довідкову систему, відладчик, а також інтеграцію всіх основних систем керування версіями, наприклад, git, Bazaar. На додаток до розробки QT Creator в Windows можна також використовувати надбудову Visual Studio та інші IDE, наприклад, KDevelop на KDE.
КП-структура відмінно підтримує інтернаціоналізацію (i18n) і локалізацію (l10n). Інструмент QT Linguist і його компаньйони lupdate, lrelease і lconvert полегшують переклад додатків на необхідні мови. Вона підтримує більшість систем записи, які використовуються сьогодні. Графічний інтерфейс створюється безпосередньо на C ++. Зазначимо, що QT таку дію виконує з використанням модуля Widgets. Також вона поставляється з інтерактивним графічним інструментом QT Designer, який функціонує, як генератор коду для графічних інтерфейсів на основі Widgets. QT Designer може використовуватися автономно. Розробка графічного інтерфейсу
QTQuick надає необхідні модулі для створення графічного інтерфейсу з QML. Можна писати цілі програми тільки в QML, але, як правило, GUI написаний в QML, а backend програми реалізовані на C ++. Крім того, Creator має вбудований графічний дизайнер QTQuick і профілювальник.
КП-структура - це набагато більше, ніж простий набір інструментів GUI. Вона надає собою модулі для крос-платформної розробки в області мереж, баз даних, OpenGL, веб-технологій, датчиків, протоколів зв'язку (Bluetooth, послідовних портів, NFC), обробки XML, JSON, друку, генерації PDF, інтервалу QT і багато чого іншого.
Додатки, що використовують це, зазвичай записуються в C ++, а прив'язки QML до інших мов існують і можуть бути надані третіми особами. Riverbank Computing, наприклад, це комерційне і безкоштовне програмне забезпечення Python bindings (PyQT).
Потрібно особливо підкреслити, що таке QT має безліч атрибутів, які можуть бути змінені за допомогою геттеров і сеттерів. Якщо атрибут називається foo, пов'язаний getter і setter будуть мати підписи: T foo () const void setFoo (const T).
Інтервал QT розширює систему атрибутів, геттеров і сеттерів, які є властивостями. Потрібно пояснити специфічну термінологію. Властивість - це значення будь-якого типу, до якого можна отримати доступ, бути зміненим або постійним, а також повідомити про зміну. Система власності корисна, особливо у третій частині (QML). Ієрархія класів
QT широко використовує спадкування, особливо в модулі Widgets. QObject - це базовий клас. Він надає деякі дуже потужні можливості: Можна встановити ім'я як рядок для пошуку об'єктів. Батьківську систему. Сигнали і слоти. Управління подіями.
Віджети можуть реагувати на події і використовувати систему батьківських систем, сигналів і слотів. Вони успадковуються від QObject. Самий простий віджет - QWidget. Він містить більшість властивостей, які використовуються для опису вікон або віджетів, таких як положення і розмір, курсор миші і спливаючі підказки.
В QT віджет також може бути вікном. Таким чином, немає необхідності в класі QWindow. Майже всі графічні елементи успадковуються від QWidget: QAbstractButton, базовий клас для всіх типів кнопок. Подовження QT масштабу. QPushButton. QCheckBox. QRadioButton. QFrame, який відображає рамку. QLabel, який відображає текст або зображення.
Це спадкування виконується для полегшення керування властивостями. Деякі з них, такі як розмір і курсори, можуть бути застосовані на інших графічних компонентах, а QAbstractButton надає якості, які спільно використовуються всіма кнопками. Система батьківського контролю
Дана система управління - це зручний спосіб роботи з об'єктами в QT, особливо з віджетами. Будь-який об'єкт, який успадковує QObject, може мати батьківські і дочірні елементи. Це дерево ієрархії робить зручною роботу: Коли об'єкт знищується, всі його батьківські зв'язку також прибираються. Таким чином, виклик delete стає необов'язковим. Дочірні віджети в QWidget автоматично з'являються всередині батьківського.
Майже всі інструменти для користувача інтерфейсу мають механізм для виявлення дії і реагують на нього. Сигнали і слоти
QT надає дві концепції високого рівня: сигнали і слоти. Сигнал - це повідомлення про зміну статусу об'єкта. Слот є функцією, яка використовується для прийому і відповіді на сигнал.
Дані концепції корисні для реагування на натискання кнопок, але вони можуть зробити набагато більше. Наприклад, вони використовуються для передачі інформації. Припустимо, що під час відтворення пісні потрібно індикатор виконання, щоб показати, скільки часу залишилося до закінчення звучання. У медіаплеєра може бути клас, який використовується для перевірки прогресу медіа. Екземпляр цього класу може періодично відправляти сигнал із зазначенням значення зміни.
Гіпотетичний клас, який використовується для перевірки прогресу, може давати сигнал, що має підпис: void MediaProgressManager :: tick (int miliseconds). Якщо розробник підключить сигнал до слоту, який не використовує одні і ті ж параметри, користувач отримає попередження: QObject :: connect : Непоєднувані аргументи відправника / одержувача.
Це пов'язано з тим, що сигнал передає інформацію в слот з використанням певних параметрів.
Особливості концепцій: Один сигнал може бути підключений до декількох слотів. Багато сигнали можуть бути підключені до одного слоту. Сигнал може бути підключений до іншого сигналу - це називається ретрансляція. Другий сигнал відправляється, якщо надійшов перший. Пошук проблем компіляції
При компіляції програми, особливо в ситуаціях, коли додається макрос Q_OBJECT, може виникнути помилка: main.cpp: undefined reference to vtable for Window'.
Це пов'язано з тим, що компілятор не запускається в класі метаоб'єкта. В цьому випадку запускається qmake, виконавши команду Build> Run qmake. Кнопка є стандартним компонентом графічного інтерфейсу КП-структури. Вона часто використовується, щоб зробити унікальний вибір із списку, наприклад, в QT QRadioButton для створення перемикачів.
Завдяки своєму спадщини QRadioButton веде себе точно так само, як QPushButton. Всі властивості в них однакові. За замовчуванням QRadioButtons не згруповані, тому багато з них можуть бути перевірені одночасно. Щоб мати «виключне» поведінка багатьох перемикачів, потрібно задіяти QButtonGroup. Це роблять таким чином: виділяють нову групу кнопок і приєднують її до батьківського об'єкта. Зверніть увагу, що він може бути головним вікном. Установка SDK для Symbian і Nokia
Щоб почати використовувати програми QT, потрібно отримати його бібліотеку і IDE. Їх можна створювати з джерела або завантажувати у вигляді SDK. Вони включають в себе безліч функцій, таких як крос-компілятори для Symbian і Nokia. Обов'язково застосовують ці пакети: Документація QMake. Документація QT. QT 4.8.1 Destkop. QT Creator.
Можна вибрати інші пакети, якщо потрібна розробка для Symbian / Maemo / Meego, а також ті, які мають більш стару версію QT. В Linux краще використовувати пакети, які надає дистрибутив. QT Creator повинен бути доступний майже у всіх дистрибутивах. При розпакуванні він встановлює всі залежності, наприклад, бібліотеки, компілятори і заголовки розробки.
Тепер можна створити перше вікно, написавши звичне «Привіт світ».
Перш ніж робити перше графічне додаток, відкривають Creator IDE C ++, який дуже добре підходить для кодування додатків QT. Він надає браузер doc і «дизайнер», що спрощує створення вікон. Всі вони вкраплені в добре продуманий користувальницький інтерфейс.
QT використовується для вказівки того, які бібліотеки і модулі є в проекті. Оскільки зазвичай перше додаток являє собою невеликий графічний інтерфейс, користувачам знадобляться QTCore і QTGui. Тепер додають точку входу додатки. Беруть файл або проект C ++. Вихідний файл C ++ повинен виконати завдання. Слідують за майстром, встановлюючи файлу назву main. Після цього проект готовий. У файлі проекту з'являється нова QT рядок, автоматично додана Creator.
QApplication - дуже важливий клас. Він піклується про вхідних аргументів і про цикл подій. Запускається при запуску app.exec (). Щоб скомпілювати це додаток, натискають на зелену стрілку ліворуч внизу. Creator скомпилирует і виконає подовження інтервалу QT. Цикл подій буде запущений і стане чекати дій, таких як клацання миші в графічному інтерфейсі.
Після компіляції користувач побачить перше QT вікно. Як це буде виглядати на екрані, показано на фото нижче.
Система складання Gmake
Creator виконує завдання дзвінка системи, але важливо знати, як скомпільовані програми QT. Якщо вони невеликі, це легко виконати вручну, створивши файли об'єктів, а потім з'єднавши їх. Але для великих проектів командний рядок є складною для написання. В Linux всі програми скомпільовані з використанням make-файлу, який описує командні рядки.
Gmake - це система збирання, яка поставляється з QT програмою. Вона генерує make-файли для розробника. За допомогою простого синтаксису створюється файл, який використовується для компіляції програми QT. Але це не єдина мета.
QT використовує метаоб'єкти для розширення функціональних можливостей C ++, qmake відповідає за підготовку файлу, який містить цю фазу вилучення.
QT програма компілюється в 3 кроки: .Pro файл записується для опису проекту для компіляції. Файл make створюється з допомогою qmake. Програма побудована з використанням NMake на вікнах. Установка Creator у Windows
Щоб встановити програму, переходять на офіційний сайт Creator і завантажують ПО. Вибирають рекомендований завантажувач: QT Online Installer для Windows. Натискають кнопку «Завантажити» внизу сторінки, після чого починається процес. Запускають установник QT Creator .exe, двічі клацнувши мишкою, щоб запустити додається додаток, в якому він буде встановлений на ПК. Для більшості екранів можна просто натиснути «Далі», щоб перейти до наступного варіанта. На екрані «Реєстрація» можна клікнути «Пропустити». На екрані злодія компонентів не вибирають якісь версії з написом Alpha, Beta або Preview, а встановлюють MinGW. Розгортають трикутник QT, потім QT 5.11.2, а потім прапорець MinGW 5 .xx 32 біт.
Якщо цього не зробити, комп'ютер не зможе скомпілювати і запустити програми на C ++.
Для всіх наступних екранів виконують QT Windows: Натиснути «Далі», «Погодитися» або «Встановити», щоб завершити установку. Після цього натиснути «Готово», щоб запустити Creator. Спробувати скомпілювати / запустити зразок проекту. Переконатися, що всі частини працюють правильно, запустити проект, який використовує бібліотеки Stanford C ++. Завантажити такий файл ZIP проекту на комп'ютер: sample-project.zip. В ньому має бути каталог з ім'ям sample-project і декількома теками всередині. Відкрити проект. У Creator вибрати «Файл» ? «Відкрити файл або проект ...» або натиснути Ctrl + O (Command + O на Mac). Перейти в папку зразка проекту і відкрити файл sample-project.pro. Creator задасть кілька запитань про те, як налаштувати процес складання для цього проекту. Користувач просто приймає значення за замовчуванням і натискає «Налаштувати проект». Поради для чайників
Щоб користуватися програмою, потрібна спеціальна інформація про її функції. Самий повний пакет документації знаходиться в мережі розробників. Він надає DocNotes, які можуть бути додані користувачами.
Якщо QTSDK був встановлений правильно, документація, що відповідає поточній версії QT, повинна бути також встановлена. Також можна використовувати QT Assistant, який є автономним браузером doc.
Важливі розділи документації: QT Assistant. QT Designer. QT Linguist. QMake.
Найважливішим компонентом є довідкова документація QT. Вона забезпечує гарне введення багатьох компонентів. Цей список відображається на сторінці «Всі класи». Ще одна цікава сторінка - та, у якій перераховані всі модулі. На ній представлена інформація про різних компонентах.
Документація по класам організована таким чином: Ім'я та короткий опис класу. Спадкування. Перерахування. Властивості. Громадські методи. Відкриті слоти. Сигнали. Захищені методи. Відгуки
Щорічно збільшується кількість користувачів QT. Програмісти у своїх відгуках не просто пишуть, що структура досить зручна, недорога, якісна, але і пояснюють новачкам всі її переваги. Ось деякі з них: Інтерфейс чистий і зрозумілий. Він має всі необхідні інструменти для виведення консолі, налагодження, трасування, а також містить корисну функціональність для переходу між функціями та їх визначеннями. Функціональність QT для створення, налагодження та відстеження надзвичайно корисна, особливо це актуально, коли користувач намагається знайти помилки в коді програмного продукту. Можна легко перейти до розділу коду, який, викликає проблему, бачити локальні змінні і їх вміст в режимі реального часу. Дизайнер UI / форм - це величезна економія часу при побудові складних інтерфейсів. Якщо його не використовувати, потрібні ручні запису XML вручну. В QT його бібліотеки і компілятори легко зберегти у налаштуваннях профілю для зручності перемикання і подальшого використання.
Як бачимо, за допомогою крос-платформної структури можна охопити всі цільові платформи з однією технологією і кодової базою, що мінімізує час виходу на ринок і навантаження на обслуговування. Автор: Іван Фролов 1 Грудня, 2018
Категория: Техника