Pull to refresh

Comments 14

Интересно. Было бы здорово услышать в чем преимущества над WPF или их сравнение.
К сожалению пока не пробовал работать с WPF, поэтому сказать ничего не могу. Qt + QML понравились за гибкость и кросс-платформеность. Немного расстроил оверхед, который дает Qt. В моем проекте при размере самой утилиты в 1,5 Мб дистрибутив «весит» 24 Мб.
Так .NET рантайм весит отнють не меньше, если не больше, просто он предустановлен на машинке чаще всего.
Зато в Линуксовых дистрах обратная ситуация, и даже на Symbian QML программы вскоре будут без бубна ставится.
С этой стороны да, путь и 24 зато «все включено».
В своей практике я сделал выбор в сторону WPF. Стояла задача сгенерировать из одного описания GUI какое-либо другое (дабы потом показать диалог). Из-за практически идентичности языков был выбран QML. Однако наличие id только в дизайн-тайм (нельзя найти контрол по id, так как в рантайм его уже просто нет) и отсутствие стандартных контролов (я знаю про обходной способ вставки QWidget в QML, но элементы автоматом не лайаутится, надо обрамлять ещё одним элементом, до и попробуйте вставить туда QWidget'ный список, содержащий в себе другие QML-элементы; описано всё предельно невнятно), убило всю идею. На WPF же всё перенеслось за день. Не хочу говорить о QML только плохое, но создалось ощущение какой-то сырой технологии, в отличие от WPF. От него впечатления куда лучше.
QML только совсем недавно появилась, пока еще QtComponents для QML не доделаны, а там как раз и есть стандартный набор управляющих элементов. А вообще пытаться юзать QWidget'ы в QML это моветон и оверкилл. Гораздо правильнее использовать QGraphicsScene элементы.
Насчет id я так и не понял в чем проблема, из javascript'а же можно манипулировать объектами с выбранным id.
Должна быть реализована (не QML-ем, а мной) возможность выставить обработчик по ключу. Приходилось генерировать дополнительно property key, хотя казалось бы.

пока еще QtComponents для QML не доделаны, а там как раз и есть стандартный набор управляющих элементов

Что ж, хорошо. Значит скоро дела будут намного лучше.
qt.gitorious.org/qt-components

Есть еще пара подобных проектов. Где-то линки видел. В общем дело пока развивается и весьма быстро. Но в целом я бы так сказал WPF больше на desktop аппликухи ориентирован, а QML на мобильные.

Вот честно говоря долго пытался понять, зачем этот самый QML нужен, если в нём нет стандартизованной библиотеки графических компонентов. Есть такое нехорошее внутреннее ощущение, что Trolltech после покупки их Нокией решили изобрести велосипедновый Adobe Flash, только с блекджеком и так далее. При этом забросив массу разных интересных идей, которые предполагалось реализовать в ближайшее время.
>Вот честно говоря долго пытался понять, зачем этот самый QML нужен, если в нём нет стандартизованной библиотеки графических компонентов.

Линк выше. Библиотека делается уже, обещали как раз возможность использовать нативные для системы стили оформления, но пока всё делается в первую очередь для MeeGo и Symbian, остальные платформы потом будут добавляться.

> Есть такое нехорошее внутреннее ощущение, что Trolltech после покупки их Нокией решили изобрести велосипедновый Adobe Flash, только с блекджеком и так далее

А что в этом плохого? Благо подобной технологии, да нормально реализованной и плюс ко всему opensource не существует.

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

Это какие же?
>Обратите внимание, что вызывать можно только те методы, которые объявлены как Q_INVOKABLE, т.е. от же метод Init, главного окна вызвать не удастся.

Не только, таким же образом без проблем вызываются и обычные slot'ы. Кстати, не советую помечать как Q_INVOKABLE или как Q_SLOT виртуальные функции. Доступ к ним будет заметно медленнее.
И еще: в QtCreator 2.1RC поддержка QML заметно лучше.
А авто тестирование такой интерфейс позволяет проводить?
Если я правельно понял, то весь интерфейс это просто картинка — без возможности выделить конкретные елементы?
Хорошо! Только маленькое замечание: для выхода из программы в QML более правильно вызывать в сцене уже готовый метод Qt.quit(), это приведет к срабатыванию соответствующего сигнала движка, на который можно повесть обработчиком тот же слот close() главного окна.
Sign up to leave a comment.

Articles