Кіріспе

бұрын Qt Software деп белгілі болған компания

Бағдарламалық жасақтаманы әзірлеу үшін объектіге бағытталған құрылым

Qt (айтылуы "кют" немесе аббревиатура ретінде) – графикалық пайдаланушы интерфейстерін жасауға, сондай-ақ Linux, Windows, macOS, Android немесе кіріктірілген жүйелер сияқты әртүрлі бағдарламалық және аппараттық платформаларда жұмыс істейтін платформааралық қолданбаларды құруға арналған платформааралық қолданбаларды әзірлеу құрылымы. Бұл, түпнұсқалық кодта аз немесе ешқандай өзгеріссіз, сонымен бірге жергілікті мүмкіндіктері мен жылдамдығы бар жергілікті қолданба ретінде жүзеге асырылады. Qt қазіргі уақытта ашық кодты басқарумен The Qt Company және Qt жобасымен әзірленуде, оған Qt-ті дамытуға жұмыс істейтін жекелеген әзірлеушілер мен ұйымдар қатысады. Qt коммерциялық лицензиялар бойынша да қолжетімді.

Qt GCC және Clang C++ компиляторлары, сондай-ақ Visual Studio жиынтығы сияқты әртүрлі C++ компиляторларын қолдайды. Python байлаулары арқылы Python және PHP5 үшін кеңейту арқылы PHP сияқты басқа тілдерді де қолдайды, сонымен қатар кең ауқымда халықаралық деңгейде қолдау көрсетеді. Qt сонымен қатар QML деп аталатын декларативтік сценарий тілін қамтитын Qt Quick-ті ұсынады, ол логиканы жүзеге асыру үшін JavaScript-ті пайдалануға мүмкіндік береді. Qt Quick көмегімен мобильді құрылғылар үшін жылдам қолданбаларды әзірлеу мүмкін болды, ал ең жақсы өнімділікке қол жеткізу үшін логиканы әлі де түпнұсқалық кодпен жазуға болады. Басқа мүмкіндіктерге SQL деректер базасына қол жеткізу, XML талдау, JSON талдау, жіптік басқару және желілік қолдау кіреді.

Шығарылымдар

Qt Framework-тің ең соңғы нұсқасы – 2024 жылдың 2 сәуірінде жарияланған Qt 6.7. Коммерциялық пайдаланушылар үшін 2023 жылдың 3 сәуірінде шыққан 6.5 LTS, 2021 жылдың 30 қыркүйегінде шыққан 6.2 LTS және 2020 жылдың 26 мамырында жарияланған 5.15 LTS нұсқалары да қолдауға ие. Ұзақ мерзімді қолдау (LTS) нұсқалары коммерциялық лицензиямен әдетте үш жыл бойы қолдалады, ал 5.15 нұсқасының қолдау мерзімі жазылым лицензиясының иелері үшін бес жылға дейін ұзартылды, демек ол 2025 жылдың 26 мамырына дейін қолдау көрсетіледі. Бұған қоса, KDE жобасы Qt 5.15 нұсқасына, кем дегенде, коммерциялық емес пайдаланушыларға да ресми емес қолдау көрсетеді.

Qt қолданыста

2017 жылы Qt компаниясы әлем бойынша 70-тен астам сала бойынша шамамен 1 миллион бағдарламашы қауымдастығын бағалаған.

Qt модульдері

Qt 4.0 нұсқасынан бастап, аясы жеке модульдерге бөлінді. Qt 5.0 нұсқасымен архитектура одан да модульдендірілді. Қазіргі кезде Qt негізгі және қосымша модульдерге бөлінген.

Негізгі элементтер

Модульдер сипаттамасы Qt Core – Басқа модульдер қолданатын кластарды қамтитын, жалғыз қажетті Qt модулі, оның ішінде мета-объект жүйесі, параллельдік және жіптер, контейнерлер, оқиғалар жүйесі, плагиндер және кіріс-шығыс мүмкіндіктері. Qt GUI – Орталық GUI модулі. Qt 5-те бұл модуль енді OpenGL-ге тәуелді, бірақ енді виджет кластары жоқ. Qt Widgets – Классикалық виджет негізделген графикалық интерфейске арналған кластар және QSceneGraph кластарын қамтиды. Qt 5 кезеңінде QtGui-ден бөлінді. Qt QML – QML және JavaScript тілдері үшін модуль. Qt Quick – QML2 арқылы жазылған графикалық интерфейс қолданбалары үшін модуль. Qt Quick Controls – Qt Quick үшін виджет сияқты басқару элементтері, негізінен десктоптық қолданбаларға арналған. Qt Quick Layouts – Qt Quick ішінде элементтерді орналастыруға арналған макеттер. Qt Network – Желілік абстракциялық қабаты. TCP, UDP, HTTP, TLS, SSL (Qt 4-те) және SPDY (Qt 5.3-тен бастап) қолдауын толық қамтамасыз етеді. Qt Multimedia – Аудио, бейне, радио және камера функционалдығы үшін кластар. Qt Multimedia Widgets – Qt Multimedia виджеттері. Qt SQL – SQL арқылы деректер базасын интеграциялау кластарын қамтиды. Qt WebEngine – Chromium негізіндегі Qt Widget және QML веб-көрініс API-лерінің жаңа жиынтығы. Qt Test – Qt қолданбалары мен кітапханаларын бірлікпен сынауға арналған кластар.

Қосымшалар

ActiveX қолданатын қолданбалар үшін белсенді Qt сыныптары. Qt диаграммалары Көптеген түрдегі диаграммаларды құруға арналған функционалдық мүмкіндіктер мен виджеттерді ұсынады. D Bus протоколын пайдаланатын жарасымды процестер аралық байланысы (IPC) үшін Qt D Bus сыныптары. Qt NFC сыныптары NFC аппараттық құралдарына қол жеткізеді. Қазірге дейін тек BlackBerry аппараттық құралдарында (немесе MeeGo портындағы N9) ресми түрде қолдау көрсетіледі. Qt OpenGL Qt 4-тен OpenGL сыныптарын қамтитын ескі модуль. Qt 5-те Qt GUI-дегі ұқсас функционалдық мүмкіндіктер ұсынылады. Qt Location GPS және басқа да орналасу қызметтеріне, сондай-ақ карта жасау және навигациялау үшін сыныптар. Qt Location Qt 4 мобильдік модулінен бөлінді. Android, BlackBerry, iOS, Linux (GeoClue арқылы), Windows және Sailfish OS жүйелерінде қолдау көрсетіледі. Qt Quick 3D 3D модельдерді, бейне ойындарды, симуляцияларды және 3D пайдаланушы интерфейстерін Qt QML API арқылы аралас 2D және 3D көрініс графигіне енгізуге арналған сыныптар. Qt Script Qt қолданбаларын ECMAScript/JavaScript арқылы скрипттеуге арналған ескі модуль. Qt 5-те Qt QML-дегі ұқсас сыныптарды пайдалану ұсынылады. Qt Sensors Әртүрлі мобильді аппараттық сенсорларға қол жеткізуге арналған сыныптар. Бұрын Qt 4-те Qt Mobile құрамына кірген. Android, BlackBerry, iOS, WinRT, Mer және Linux жүйелерінде қолдау көрсетіледі. Qt Serial Port Аппараттық және виртуалды тізбекті порттарға қол жеткізуге арналған сыныптар. Windows, Linux және macOS жүйелерінде қолдау көрсетіледі. Qt WebChannel WebSockets арқылы HTML/Js-ке Qt нысандарына қол жеткізуді қамтамасыз етеді. Qt WebKit Qt-тің WebKit іске асыруы және API. Qt WebKit виджеттері Qt WebKit виджеттерінің API. Qt WebSockets WebSocket іске асыруын қамтамасыз етеді. Qt XML SAX және DOM стиліндегі XML API-лері үшін сыныптарды қамтитын ескі модуль. Qt Core-дегі QXmlStreamReader және QXmlStreamWriter сыныптарымен алмастырылды. Qt XML үлгілері XPath, XQuery, XSLT және XML схемаларын тексеруді қолдайды.

Лицензиялау

Qt келесі ашық кодты лицензиялар бойынша қолжетімді: GPL 2.0, GPL 3.0, LGPL 3.0 және LGPL 2.1 (Qt ерекше шартымен). Назар аударыңыз, кейбір модульдер тек GPL лицензиясы бойынша ғана қолжетімді, яғни осы модульдермен байланысты қолданбалар осы лицензия талаптарына сәйкес болуы тиіс. Бұған қоса, Qt әрқашан коммерциялық лицензия бойынша да қолжетімді болды, мысалы, Qt Commercial License, ол лицензиялық шектеулерсіз жабық кодты қолданбаларды жасауға мүмкіндік береді.

Qt құралдар

Qt платформалық тәуелсіз әзірлемені жеңілдету үшін өзінің құралдарымен бірге келеді, әйтпесе әртүрлі әзірлеу құралдарының жиынтығына байланысты бұл қиын болуы мүмкін. Qt Creator – C++ және QML үшін платформалық тәуелсіз IDE. Qt Designer-дың GUI макеті/дизайны IDE-ге енгізілген, бірақ Qt Designer жеке құрал ретінде де іске қосылуы мүмкін. Qt Creator-дан басқа, Qt qmake-ті ұсынады, ол әртүрлі платформалардағы әзірлеу жобалары үшін Makefiles-ті автоматты түрде жасауға мүмкіндік беретін платформалық тәуелсіз құрал. Qt-да басқа да құралдар бар, олардың ішінде Qt Designer интерфейс құрастырғышы және Qt Assistant көмекші шолушысы (екеуі де Qt Creator-ға кіріктірілген), Qt Linguist аударма құралы, uic (пайдаланушы интерфейсі компиляторы) және moc (Мета-объектілер компиляторы) бар.

Алғашқы дамуы

1990 жылдың жазында Хаавард Норд пен Эрик Чамбе Энг (Qt-тің бастапқы әзірлеушілері және Trolltech компаниясының бас директоры мен президенті) C++ тілінде жазылған және Mac OS, Unix және Microsoft Windows жүйелерінде жұмыс істейтін ультрадыбыстық суреттерге арналған деректер базасы бағдарламасымен бірге жұмыс істеді. Олар "Qt" әзірлеуін 1991 жылы бастады, бұл компания Quasar Technologies ретінде тіркелгенге дейін үш жыл бұрын болды, содан кейін компанияның атауы Troll Tech, ал кейін Trolltech болып өзгерді. Qt-тің алғашқы екі нұсқасы тек екі нұсқада қол жетімді болды: Unix үшін Qt/X11 және Windows үшін Qt/Windows. 1995 жылдың 20 мамырында Trolltech компаниясы Qt 0.90 нұсқасын X11/Linux үшін, бастапқы кодымен бірге Qt Free Edition лицензиясы бойынша жариялады. Бұл лицензия Free Software Foundation ұйымы тарапынан ашық бағдарламалық қамтамасыз ету анықтамасына сәйкес келмейтін деп танылды, себебі бастапқы код қолжетімді болғанымен, өзгертілген нұсқаларын қайта таратуға рұқсат берілмеді. Trolltech компаниясы 1.45 нұсқасына дейін осы лицензияны пайдаланды. 1998 жыл шамасында K үстел ортасы Linux жүйесі үшін басты үстел орталарының біріне айналатыны белгілі болғанда дау туды. Qt-ге негізделгендіктен, ашық бағдарламалық қамтамасыз ету қозғалысындағы көптеген адамдар олардың маңызды операциялық жүйелерінің бірінің маңызды бөлігі жеке меншікке көшіп кетпесіне қатысты алаңдады. Windows платформасы тек жеке меншік лицензиясы бойынша ғана қолжетімді болды, бұл X11 үшін Qt-те жазылған ашық/тегін бағдарламаларды меншік лицензиясын сатып алмастан Windows жүйесіне көшіру мүмкін емес екенін білдірді.

Еркін бағдарламалық жасақтамаға айналу

1999 жылдың ортасында құралдар жиынтығының 2.0 нұсқасы жарық көрген кезде лицензия Q Public License (QPL) – тегін бағдарламалық жасақтама лицензиясына өзгертілді, бірақ Free Software Foundation оны GPL-мен үйлесімсіз деп санады. KDE мен Trolltech арасында Qt, Trolltech компаниясы сатылса немесе банкрот болса да, QPL-ден шектеулі лицензияға ие болмауы жөнінде келісімге келді. Бұл KDE Free Qt қорының құрылуына әкелді, ол егер 12 ай ішінде Qt-тің тегін/ашық бастапқы коды бар нұсқасы шығарылмаса, Qt BSD стиліндегі лицензияға көшетініне кепілдік берді. 2000 жылы Qt/X11 2.2 GPL v2 лицензиясымен шығарылды, бұл GPL үйлесімділігіне қатысты барлық дауларды тоқтатты. 2001 жылдың соңында Trolltech Mac OS X (қазір macOS деп аталады) қолдауын қосқан Qt 3.0 нұсқасын шығарды. Mac OS X қолдауы 2003 жылдың маусымына дейін тек меншік лицензияда қолжетімді болды, содан кейін Trolltech Qt 3.2 нұсқасын Mac OS X қолдауымен GPL лицензиясымен бірге шығарды. 2002 жылы KDE on Cygwin жобасының мүшелері GPL лицензиясы бар Qt/X11 код базасын Windows жүйесіне көшіруді бастады. Бұл Trolltech компаниясының Windows – тегін/ашық бастапқы бағдарламалық платформа емес деген себеппен Qt/Windows лицензиясын GPL бойынша беруден бас тартуына жауап ретінде жасалды. Жобаның нәтижесі жақсы болды, бірақ өндірістік сапаға жете алмады. Бұл мәселе 2005 жылдың маусымында Trolltech компаниясы Windows үшін Qt 4.0 нұсқасын GPL лицензиясымен шығарғанда шешілді. Qt 4 тегін бағдарламалық қамтамасыз ету/ашық бастапқы кодтық нұсқаларында меншік нұсқасындағыдай платформалар жиынтығын қолдайды, сондықтан Qt 4.0 және одан кейінгі нұсқаларында Qt-ті қолданатын барлық қолдау көрсетілетін платформаларда GPL лицензиясы бар тегін/ашық бастапқы кодты қолданбаларды жасау мүмкін. Кейіннен арнайы ерекшелікпен GPL v3 қосымша лицензиялық опция ретінде қосылды. GPL ерекшелігі түпкілікті қолданбаны GPL-мен үйлесімсіз әртүрлі тегін бағдарламалық қамтамасыз ету/ашық бастапқы кодтық лицензиялар бойынша лицензиялауға мүмкіндік береді, мысалы Mozilla Public License 1.1.

Nokia компаниясының сатып алуы

Nokia 2008 жылдың 17 маусымында Trolltech ASA компаниясын сатып алды және атын алдымен Qt Software, кейін Qt Development Frameworks деп өзгертті. Nokia Qt-ны өзінің құрылғылары үшін басты даму платформасына айналдыруға, соның ішінде Symbian S60 платформасына көшіруге баса назар аударды. Nokia Qt SDK 1.0 нұсқасы 2010 жылдың 23 маусымында жарияланды. Бастапқы код қауымдастыққа бағытталған git бастапқы код қоймасы Gitorious арқылы қолжетімді болды, мақсаты – Qt-ны пайдаланушылар мен жетілдірушілердің кең қауымдастығын құру. 2009 жылдың 14 қаңтарында Qt 4.5 нұсқасы GPL емес, ашық бастапқы кодты жобалар мен жабық қолданбалар үшін Qt-ны тартымды ету үшін LGPL опциясын қосты. 2011 жылдың ақпан айында Nokia Symbian технологияларын тоқтатып, болашақ смартфондарын Windows Phone платформасында құру туралы шешім қабылдады (содан бері осы платформаға қолдау да тоқтатылды). Бір айдан кейін Nokia Qt-ның коммерциялық лицензиясын және кәсіби қызметтерін Digia компаниясына сатқанын хабарлады, мақсаты – Qt-ны Android, iOS және Windows 8 платформаларында қолдау көрсетуді және десктоптық және кіріктірілген дамуға назар аударуды жалғастыру болды, бірақ Nokia сол кездегі негізгі даму күшін сақтап қалуға тиіс еді.

Digia-мен бірігу және ажырату

2011 жылдың наурыз айында Nokia, Qt коммерциялық лицензиялау бөлігін Digia компаниясына сатты, соның нәтижесінде Qt Commercial құрылды. 2012 жылдың тамызында Digia, Nokia-дан Qt-ны сатып алу ниетін жариялады. Digia-дағы Qt командасы 2012 жылдың қыркүйегінде жұмысын бастады. Олар бір ай ішінде Qt 5.0-ді, ал жаңа мүмкіндіктері мен қосымша қолдау көрсетілетін платформаларымен бірге әр алты ай сайын жаңа нұсқаларын шығарды. 2014 жылдың қыркүйегінде Digia, Qt бизнесі мен авторлық құқықтарды толық иеленген еншілес компаниясы The Qt Company-ға берді, ол Qt-ға қатысты 25 брендке ие. 2016 жылдың мамырында Digia мен Qt толыққанды түрде екі тәуелсіз компанияға бөлінді.

Qt жобасы және ашық басқару

Qt 5 ресми түрде 2012 жылдың 19 желтоқсанында жарияланды. Бұл жаңа нұсқа платформадағы маңызды өзгеріс болды, аппараттық үдетілген графика, QML және JavaScript маңызды рөл атқарды. Дәстүрлі C++ ғана қолданатын QWidgets қолдауын сақтап қалды, бірақ жаңа архитектура арқылы қолжетімді болған өнімділік артықшылықтарынан пайда көре алмады. Qt 5 пайдаланушы интерфейстерін жасау жылдамдығы мен жеңілдігіне елеулі жақсартулар әкелді. Qt 5 аясының дамуы ашық басқаруға көшті, qtproject.org сайтында Digia компаниясының сыртындағы әзірлеушілерге түзетулерді қарауға жіберуге мүмкіндік берді.

Қатысушылар

The Qt Company-ден басқа, Qt-ті даму платформасы ретінде пайдаланатын көптеген ұйымдар мен жеке тұлғалар Qt жобасы арқылы Qt-тің ашық дамуына қатысады. Осындай Qt-ға үлес қосушылардың бірі – шведтік Qt консалтингтік компаниясы Klarälvdalens Datakonsult AB. KDAB көптеген салаларда жұмыс істейді, оның ішінде бірнеше компоненттің күтіп-жөндеуіне қатысады. RIM/BlackBerry компаниясымен бірлесіп KDAB Qt-ның QNX және BlackBerry 10 нұсқаларын қолдайды. Тағы бір қатысушы – Intel, ол мысалы, Wayland қолдауын ұсынады. AudioCodes Qt Creator-да IBM ClearCase қолдауын сақтап тұрады. Qt-ті белсенді пайдаланушы ретінде KDE жобасы өз әзірлеуші кітапханасы KDE Frameworks-тен көптеген түзетулер мен жаңа мүмкіндіктерді Qt-ға қайтарады.