Вопрос

Я знаю, что использование QML вполне новое в Qt, и мне было интересно, если я должен разработать свое приложение с помощью Qtdesigner или QML. Я буду использовать шаблон MVC и мою основную обеспокоенность, если я использую QML для GUI, так это то, что он не может быть легко интегрировать внутри RESTE моего приложения C ++.

Не стесняйтесь давать свой личный совет, я бы очень признателен. Спасибо!

Это было полезно?

Решение

QML в основном предназначен для мобильных платформ. Из-за своей молодежи и его обеспокоенности для различных интерфейсных конвенций платформы ему не хватает стандартных элементов управления, такие как кнопки и комбинированные поля (но см. Компоненты проект). Если вы на мобильном, или ваш интерфейс требует очень настраиваемого визуального стиля, QML мощь Стоять рассмотрения. Будьте готовы к большому количеству дополнительной работы в разработке пользовательских контролей. Интеграция QML и C ++ по-прежнему довольно грубые на мой взгляд. Я бы лично рекомендовал использовать QML только для более простых приложений, только на мобильных платформах, и только с JavaScript. При правильных обстоятельствах я мог бы рассмотреть вопрос о том, чтобы написать пользовательские элементы QML в C ++.

Qt's C ++ API не уходит в ближайшее время. Это также разработано с учетом рабочего стола и сделает лучшую работу для удовлетворения ожиданий пользователей на настольных платформах. Если вы на рабочем столе, я бы порекомендовал придерживаться C ++ и дизайнера. Даже после того, как QML созревает немного, он, вероятно, не будет правильным решением для большинства приложений для рабочего стола.

Обновлять!

Похоже, что Начиная сменить. Отказ Я еще не пробовал новые компоненты, и документация кажется немного редким (или, по крайней мере, с пути), но это в конечном итоге может удалить наибольший барьер для использования QML на рабочем столе. Осталось увидеть, будет ли это получить поддержку в долгосрочной перспективе, но если вы готовы принять риск того, чтобы быть ранним усыновлением, я думаю, что QML теперь может быть жизнеспособным выбором для приложений для рабочего стола.

Другие советы

Это стоило бы попробовать немного QML, чтобы проверить, соответствует ли он вашим потребностям.

Если вы создаете очень пользовательские интерфейсы с динамическими интерфейсами и анимацией, то QML соответствует заданию; Если вы строите традиционное настольное приложение, вы, вероятно, захотите придерживаться API QT C ++.

Что касается интеграции между QML и C ++, QML предназначен для того, чтобы легко интегрированы с кодом C ++, и многие приложения QML используют какой-то бэкэнд C ++. Это просты для ввода объектов C ++ в интерфейс QML или напишите пользовательские элементы QML в C ++. Посмотри на http://doc.qt.io/archives/qt-4.7/qtbinding.html. а также http://doc.qt.io/archives/qt-4.7/qml-extended-tutorialial-index.html..

Одна вещь, упущенная вышеуказанными ответами, заключается в том, что QML имеет дополнительное преимущество / недостаток JavaScript для бизнес-логики (при необходимости). В настоящее время я строю приложение (маленькое и среднее) размером на рабочий стол и прямо сейчас мои (2) пользователи альфа наслаждаются этим. Я впечатлен выразительностью структуры и как быстро я могу получить его и проверить. Все вообще я считаю его быстрее работать с редактором RAD (Designer), и мне нравится иметь JavaScript в качестве отбления на моем интерфейсе, когда я делаю раздражающие вещи, такие как Hapers / Validation и т. Д.

Я думаю, что это вопрос того, насколько вам удобно с языком. Если C ++ - это ваш «перейти на» язык, чем вы, вероятно, предпочтете дизайнеру. Если вы приедете из Интернета (признание, я инженер Java EE / MVC .NET DEV делает много переднего конца), вы найдете его освежающим и быстрым.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top