LINUX.ORG.RU

В чем фишка Qt Quick

 , ,


2

2

Изучаю Qt. Вижу, что есть два подхода к разработке приложения: Qt Widgets и Qt Quick. Судя по всему за Qt Quick активно топят. На официальной странице нашел сравнение этих технологий. И вроде как пишут, что Qt Quick для стильных модных молодежных, а Qt Widgets если не Deprecated, то для старперов. На всяких Reddit-ах тоже активно нахваливают QML.

Интуитивно кажется, что Quick потянет за собой либо какой-то встроенный интерпретатор JavaScript, либо какой-то хитрый компилятор, но в любом случае добавит накладные расходы на взаимодействие между JavaScript и C++ кодом. Кажется, что это будет работать медленнее, чем если всё написано сразу на C++.

С другой стороны, если хочется быстрой разработки, чтобы раз-два и в продакшен - это же точно не про C++. Для этого есть Electron или Web в браузере. C++ для GUI, на мой взгляд, имеет смысл выбирать только если хочется максимальной производительности и минимального расхода ресурсов, а сроки разработки не особо важны.

Вижу что Qt пытается запрыгнуть в мобильную разработку, но это тоже как-то странно, когда есть нативные библиотеки, дающие максимальную производительность или Flutter, дающий кроссплатформу.

Поэтому возникает вопрос: какой практический смысл в Qt Quick?

Ответ на: комментарий от s3rjke

Писать проекты на QML можно по-разному, проекты могут выглядеть сильно непохоже по структуре. Посмотри примеры, что ли. Свой код можно писать прямо в этот файл, можно в другой. Про подключение файлов в этой книге написано.

unC0Rr ★★★★★
()
Ответ на: комментарий от rtxtxtrx

Telegram Desktop да, написан на Qt, при этом у них там собственная кастомная отрисовка через QPainter и всякие форки Qt.

А вот Telegram для Android – речь шла именно про это – никогда не был на Qt.

EXL ★★★★★
()
Ответ на: комментарий от dataman

Поиск «qt» в файлах распакованного apk не дал удовлетворительных результатов

Ну не знаю, в AndroidManifest.xml полно упоминаний:

intent-filter …jar/QtAndroid.jar:jar/QtAndroidBearer.jar:jar/QtPositioning.jar:jar/QtMultimedia.jar:jar/QtAndroidExtras.jar:jar/QtAndroidWebView.jar

плюс репозиторий их https://github.com/2gis/qtandroidextensions вполне себе активен, вряд ли они продолжили пилить, если бы не пользовались

asaks
()
Последнее исправление: asaks (всего исправлений: 1)
Ответ на: комментарий от EXL

Telegram Desktop да, написан на Qt, при этом у них там собственная кастомная отрисовка через QPainter и всякие форки Qt.

Причем, совершенно непонятно нафига они так заморочились, когда могли просто использовать QML. К моменту появления Telegram QML был уже вполне допиленной технологией.

Xintrea ★★★★★
()
Ответ на: комментарий от Xintrea

когда могли просто использовать QML

Не могли, там сидят олимпиадники. В их код лучше без пива не заглядывать. У них собственные велосипеды на всё и вся.

Вот ICQ на Qt тоже перелез. Возможно там был Qt Quick/QML, но это не точно.

EXL ★★★★★
()
Ответ на: комментарий от Xintrea

Хотя, нет, кажись в ICQ тоже слизали всё как в Telegram и реализовали без QML:

https://github.com/mailru/icqdesktop.deprecated/tree/master/gui

А ещё их ICQ Desktop когда-то успел задепрекейтится, видимо поддерживать эту груду C++ кода когда есть https://web.icq.com/ им стало лень.

EXL ★★★★★
()

Главная особенность QtQuick, что ты можешь разделить Model, View и Controller для десктопного приложения. Причем это все дело остается довольно шустрым. Разработчикам нужно предоставить только модели (что именно показывать), тогда как UI/UX дизайнер импортирует из фигмы макеты, делает компонентную систему и располагает это все, чтобы было красиво (это то что сейчас происходит в нашей конторе). C Qt Widget’ами рано или поздно заведовать фронтендом начинают программисты, которые делают логику (причем в «лучших традициях» все намешано). Сколько раз с виджетами встречался, все время всегда скатывалось по этой дороге.

maxis11
()