Qt 6 функционалдық жол картасы жарияланды

Ларс Нолл, KHTML қозғалтқышын жасаушы, Qt жобасының жоба менеджері және Qt компаниясының техникалық директоры, Мен айтты Qt шеңберінің келесі маңызды тармағын құру жоспарлары туралы. Qt 5.14 филиалының функционалдығы аяқталғаннан кейін, әзірлеу 6 жылдың соңында күтілетін Qt 2020 шығарылымына дайындалуға бағытталады.

Qt 6 Qt 5 үйлесімділігін қамтамасыз ету мақсатында әзірленеді, бірақ жеке мәселелер туындауы мүмкін, өйткені жоспарланған архитектуралық өзгерістер мен тазалауды үйлесімділіктің белгілі бір деңгейін жоғалтпай жүзеге асыру мүмкін болмайды. Өтуді тегістеу үшін Qt 6 кейбір мүмкіндіктерін Qt 5.14 және Qt 5.15 LTS шығарылымдарының бөлігі ретінде қысқартылған пішінге қосу жоспарлануда. Сондай-ақ Qt 6-ға көшуді жеңілдету үшін құралдар жинағы дайындалады.

Келесі маңызды саланың негізгі мақсаттарының қатарында функционалдылықты 2020 жылдың талаптарына сәйкес келтіру, кодтық базаны тазарту және жобаға техникалық қызмет көрсетуді жеңілдету. Күтілетін өзгерістер:

  • QML-тің маңызды модернизациясы:
    • Күшті теруді қолдау.
    • QML-ді C++ көрсетуіне және машиналық кодқа құрастыру мүмкіндігі.
    • Толық JavaScript қолдауын опцияға айналдыру (толық мүмкіндіктері бар JavaScript қозғалтқышын пайдалану көптеген ресурстарды қажет етеді, бұл микроконтроллерлер сияқты жабдықта QML пайдалануды болдырмайды).
    • QML-де нұсқалаудан бас тарту.
    • QObject және QML-де қайталанатын деректер құрылымдарын унификациялау (жадты тұтынуды азайтады және іске қосуды жылдамдатады).
    • Деректер құрылымдарының орындалу уақытын генерациялаудан компиляция уақытын құру пайдасына көшу.
    • Жеке әдістер мен қасиеттерді пайдалану арқылы ішкі компоненттерді жасыру.
    • Рефакторингке және компиляция уақытындағы қателерді диагностикалауға арналған әзірлеу құралдарымен жақсартылған интеграция;
  • Түрлі графикалық API интерфейстерін, соның ішінде OpenGL, Vulkan, Metal және Direct 3D (бұрын Qt тек OpenGL болатын) пайдалануды қамтамасыз ету үшін жаңа абстрактілі қабатты, Rendering Hardware Interface (RHI) қосу. Барлық қолданыстағы көрсету инфрақұрылымы QPainter, Qt Quick Scenegraph және Qt3D қоса алғанда, RHI пайдалану үшін түрлендіріледі. Сондай-ақ, әртүрлі шейдерді әзірлеу тілдерін қолдау және құрастыру сатысында да, орындау уақытында да шейдерлердің кросс-компиляциясын қамтамасыз ету үшін Qt Shader Tools модулін қосу жоспарлануда;
  • 2D және 3D графика элементтерін біріктіретін пайдаланушы интерфейстерін құру үшін бірыңғай API дайындау. Жаңа API сізге UIP пішімін пайдаланбай 3D интерфейс элементтерін анықтау үшін QML пайдалануға мүмкіндік береді. 3D мазмұнын Qt Quick бағдарламасымен біріктіруге арналған жаңа интерфейс Qt 3D немесе 3D Studio мазмұнымен QML интеграциясының жоғары шығындары және 2D және 3D арасында анимациялар мен кадр деңгейіндегі түрлендірулерді синхрондау мүмкін еместігі сияқты мәселелерді шешуді жоспарлайды. Біріктірілген кірістірілген 2D және 3D көрсету жаңа көрсету механизмі арқылы жүзеге асырылады. 3D қолдауы бар жаңа Qt Quick алдын ала қарау Qt 5.14 шығарылымында күтілуде;
  • PNG кескіндерін қысылған текстураларға түрлендіру немесе шейдерлер мен торларды арнайы жабдық үшін оңтайландырылған екілік пішімдерге түрлендіру сияқты компиляция уақытында графикаға қатысты активтерді өңдеуге арналған құралдарды қосу;
  • Түрлі мобильді және жұмыс үстелі платформаларына тән Qt Widgets және Qt Quick негізіндегі қолданбалардың пайда болуына қол жеткізуге мүмкіндік беретін тақырыптар мен стильдер үшін бірыңғай қозғалтқышты енгізу;
  • Пайдаланушы интерфейсін құру құралдарын унификациялау. Функционалдықтардың қайталануын және екі бөлек өнімді жеткізуді тоқтатуды болдырмау үшін Qt 3D Studio функционалдығы Qt Design Studio бағдарламасына біріктіріледі деп күтілуде, оның көптеген ішкі жүйелері мен плагиндерді қосуға арналған негізі сол код базасында жасалған. Qt Creator.
    Qt Design Studio сонымен қатар Photoshop, Sketch, Illustrator, Maya және 3D Max сияқты мазмұнды жасау пакеттерімен жоғары сапалы интеграцияны қамтамасыз етуді жоспарлап отыр. Бірыңғай әзірлеу құралдары жинағында қолдау көрсетілетін негізгі тілдер C++, QML және Python болып табылады. Біріктіру сонымен қатар Qt Creator интерфейсін жобалау құралдарына қол жеткізу мүмкіндігін білдіреді және интерфейс дизайнерлеріне әзірлеуші ​​құралдарының мүмкіндіктерімен қамтамасыз ету, мысалы, жобаны құрастыру немесе құрылғыда қолданбаны сынау;

  • Құрастыру жүйесі ретінде QMake орнына CMake пайдалану туралы шешім қабылданды. QMake көмегімен қолданбаларды құруға қолдау көрсетіледі, бірақ Qt өзі CMake көмегімен құрастырылады. CMake таңдалды, себебі бұл құралдар жинағы C++ жобасын әзірлеушілер арасында кеңінен қолданылады және көптеген біріктірілген әзірлеу орталарында қолдау көрсетіледі. QMake-ті алмастыратын Qbs құрастыру жүйесін әзірлеу, тоқтатылды;
  • Әзірлеу кезінде C++17 стандартына көшу (бұрын C++98 қолданылған). Qt 6 көптеген заманауи C++ мүмкіндіктерін қолдауды жүзеге асыруды жоспарлап отыр, бірақ бұрынғы стандарттарға негізделген кодпен кері үйлесімділікті жоғалтпай.
  • C++ тілінен QML және Qt Quick үшін ұсынылған кейбір функцияларды пайдалану мүмкіндігі. Атап айтқанда, QObject және ұқсас сыныптар үшін жаңа меншік жүйесі ұсынылады. Байланыстармен жұмыс істеуге арналған қозғалтқыш QML-ден Qt өзегіне біріктіріледі, бұл байланыстырулар үшін жүктеме мен жадты тұтынуды азайтады және оларды Qt Quick емес, Qt жүйесінің барлық бөліктеріне қолжетімді етеді;
  • Python және WebAssembly сияқты қосымша тілдерді қолдауды кеңейту бойынша жұмысты жалғастыру;
  • Кішігірім құрамдас бөліктерге бөлу және негізгі өнімнің өлшемін азайту арқылы қайта құрылымдау. Әзірлеуші ​​құралдары мен реттелетін компоненттер жаңа каталог дүкені арқылы таратылатын қондырмалар ретінде қамтамасыз етіледі. Тегін және ақылы үшінші тарап әзірлеушілерінің Qt қосымшалары да таратуға қабылданады.

Ақпарат көзі: opennet.ru

пікір қалдыру