Комментарии 19
Вы писали под Андроид на Qt? QML или виджеты?
0
Писал. Однозначно лучше использовать QML, тем более что уже есть Qt.Controls
+1
Пытаюсь сейчас пилить персональный опен-сорс проект на Qt Controls 2, в целом уже как-то юзабельно, но есть нюансы. Интересно, как это сделано в серьёзных коммерческих проектах. У вас весь UI на Qt, или есть и нативные части?
0
мм… вот прям большого ничего нет, в основном небольшие проекты. Так что как правильно делать UI подсказать не могу. Посмотрите примеры на GitHub по запросу QML, там очень много кода.
0
Проблема не в том, чтобы сделать, а в том, чтобы это ещё и прилично выглядело, и не слишком сложно. Например, настройки приложения: в Андроид есть стандартная PreferenceActivity, но к QML её прикрутить сложновато. Значит, прийдётся писать свой велосипед, и непонятно, что из этого получится.
Но я отвлёкся от темы статьи :)
Но я отвлёкся от темы статьи :)
0
В этом ключа конечно, если планируется переносимость — нужно городить свой велосипед, чтобы настройки были под всеми ОС одинаковыми. А если приложение предполагается только под Android, возможно лучше и писать его нативно на Java?
В любом случае существует Qt androidextras, позволяющий взаимодействовать с нативным кодом, наверняка там можно вызвать новую Activity, поверх своего приложения.
В любом случае существует Qt androidextras, позволяющий взаимодействовать с нативным кодом, наверняка там можно вызвать новую Activity, поверх своего приложения.
0
Спасибо, забыл про androidextras, посмотрю.
Вызвать тоже не проблема, проблема протянуть данные сначала из Java в С++, а потом в QML. Ну и обратно заслать, чтоб UI заполнить, но в ту сторону проще должно быть.
Как раз сделать на QML одинаково под все платформы несложно, но хочется нативный внешний вид. Как минимум, под каждую систему некоторые UI-классы различаются, пусть и все написаны на QML. Целый огород нужно городить, одним словом. По крайней мере, так у меня выходит пока что.
Вызвать тоже не проблема, проблема протянуть данные сначала из Java в С++, а потом в QML. Ну и обратно заслать, чтоб UI заполнить, но в ту сторону проще должно быть.
Как раз сделать на QML одинаково под все платформы несложно, но хочется нативный внешний вид. Как минимум, под каждую систему некоторые UI-классы различаются, пусть и все написаны на QML. Целый огород нужно городить, одним словом. По крайней мере, так у меня выходит пока что.
0
чтобы это ещё и прилично выглядело
Это зависит от художественных способностей разработчика или наличие UI/UX дизайнера.
+1
Автору грандиозный респект за его осмысление и труд, замечательную статью и открытый код.
К сожалению, пока только в комментариях.
О личном опыте — была задача на архитектуру с rest-api в QtQuick: до отдельной библиотеки дело не дошло, но получилось весьма похоже.
Добавлю, что для того, что бы уйти от лишних QObject-ов, активно задействовался Q_GADGET, например при клике на элемент DetailModel формировался такой объект, что позволило ослабить хватку слежения за выделяемой памятью (понятие ownership оказалось не без подвохов).
К сожалению, пока только в комментариях.
О личном опыте — была задача на архитектуру с rest-api в QtQuick: до отдельной библиотеки дело не дошло, но получилось весьма похоже.
Добавлю, что для того, что бы уйти от лишних QObject-ов, активно задействовался Q_GADGET, например при клике на элемент DetailModel формировался такой объект, что позволило ослабить хватку слежения за выделяемой памятью (понятие ownership оказалось не без подвохов).
0
Интересный проект, спасибо, что выложили и подробно поделились использованием.
Выглядит все очень цельное и логично, надо будет обязательно попробовать.
Выглядит все очень цельное и логично, надо будет обязательно попробовать.
0
C:\qtrest-example>qpm install
INFO: Package com.github.kafeg.qtrest has a different license (MIT) than it's de
pendant (NONE).
Installing com.github.kafeg.qtrest@0.1.0
QPM: 2016/11/12 13:58:22 ERROR: GetFileAttributesEx C:\qtrest-example\vendor\kafeg-qtrest-2dddaa5\src\models\qpm.json: The system cann
ot find the file specified.
INFO: Package com.github.kafeg.qtrest has a different license (MIT) than it's de
pendant (NONE).
Installing com.github.kafeg.qtrest@0.1.0
QPM: 2016/11/12 13:58:22 ERROR: GetFileAttributesEx C:\qtrest-example\vendor\kafeg-qtrest-2dddaa5\src\models\qpm.json: The system cann
ot find the file specified.
0
Привет. Это баг в QPM под виндой кажется, я им баг реквест засылал, подвердили и обещали исправить. Попробуйте через подключение библиотеки путем копирования.
0
Уже попробовал — проект устарел — Qt.labs.controls включены в 5.7 со всеми стилями, а QPM_INIT(engine); — такой команды вообще нет… не понимаю, зачем этот qpm… это же никакого отношения к компании — разработчику qt не имеет…
По итогу проект не собирается от слова совсем.
По итогу проект не собирается от слова совсем.
0
Действительно, делал example еще на Qt 5.5.1. Поправил сборку под Qt 5.7, соотв. для example проекта 5.7 является минимальной версией. Попробуйте собрать.
Ну и QPM все таки выкинул, вообще штука хорошая (типа CocoaPods), но работает плохо. =(
Ну и QPM все таки выкинул, вообще штука хорошая (типа CocoaPods), но работает плохо. =(
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Qt / QML REST Client