2011-12-24 8 views
47

Я новичок в Qt и не совсем понимаю разницу между Qt Quick Project и Qt Widget Project.Qt Quick vs. Qt Widget

Я надеюсь создать программу, которая рисует решетку шестиугольников, которую пользователь может вращать и сдвигать, а также панорамировать и увеличивать и уменьшать изображение. В конечном итоге это будет MIDI-контроллер. Какой тип проекта был бы лучше для этого и почему?

Я надеюсь, что это будет работать как на настольных, так и на мобильных платформах.

+1

Проведите немного времени на веб-сайте [Qt Quick] (http://qt.nokia.com/qtquick/) и просмотрите примеры. Если это то, что вам нужно, используйте его. Если нет, то получится для обычного проекта виджета Qt, но мобильные платформы, возможно, будут проблемой. – Mat

ответ

28

Qt Quick - это декларативный пользовательский интерфейс в стиле смартфона с поддержкой множества интересных переходов анимации, которые распространены в приложениях для смартфонов. Quick также является хорошим выбором для быстрого создания прототипа. Qt Widget - это традиционная модель пользовательского интерфейса, ориентированная на настольные системы.

Прямо сейчас (pre-Qt5), Qt Быстрая поддержка функций настольной системы отсутствует (но улучшается). В Quick не поддерживается поддержка меню, панелей инструментов, диалогов и других стандартных действий на рабочем столе, в то время как Widget поддерживает эти элементы очень хорошо.

Вы хотите, чтобы ваше приложение выглядело и привыкло на настольных и планшетных платформах, или вы создаете простое приложение вокруг своего собственного пользовательского виджета? Как сказал Мат, если Qt Quick поддерживает функции, которые вы хотите, это, вероятно, будет вашим самым быстрым подходом. Если вы хотите создавать полнофункциональные настольные версии, Qt Widget, вероятно, будет вашим лучшим выбором.

+0

Я бы хотел оба. :) Теперь с помощью Qt Widget. – Anthony

+0

Этот ответ должен быть удален, отредактирован или опущен, так как теперь мы находимся в post Qt 5.0, мы даже приближаемся к 6.0, а виджеты Qt заменяются QML Widgets. –

+0

Ответ, или вопрос? Похоже, вы говорите, что вопрос больше не имеет значения. – AndrewS

4

Qt Быстрое по умолчанию значение QML, декларативный диалект JSON с включенным ECMAscript. С виджетами Qt стили могут быть сделаны дизайнером, а разработчик использует собственную C++-кодировку.

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

2

Во-первых, я думаю, вы должны начать с Widget. Widget UI поможет вам легко узнать qt, если ваши предыдущие впечатления касаются интерфейсных вещей, которые вы легко узнали бы быстро.

19

Как кто-то, кто профессионально разрабатывает qt-приложения, я выберу qml поверх виджетов в любой день.

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

Qml является просто более гибким, вы можете привязывать элементы везде, где хотите, вместо использования ограниченной системы компоновки виджетов. Почти нет недостатков в зависимости от платформы, в то время как виджеты полны этих ошибок. И система привязки свойств делает так просто поддерживать ваш ui в синхронизации с вашей моделью.

+2

Спасибо! Я просто решил начать с QML/QtQuick, основываясь на вашем профессиональном фоне, указанном в вашем ответе. Просто убедитесь, что я легко могу использовать * .ui.qml из QtCreator и использовать его непосредственно в PyQt. Решила мою первоначальную настройку Python + QtQuick! – swdev