Выпущен Qt Declarative для Qt 4.6.0 |
Здравствуйте, гость ( Вход | Регистрация )
Выпущен Qt Declarative для Qt 4.6.0 |
Litkevich Yuriy |
14.12.2009, 16:18
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Новость в лаборатории http://labs.trolltech.com/blogs/2009/12/14...t-460-released/
|
|
|
ViGOur |
14.12.2009, 18:18
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Нужно будет попробовать этот QML, на первый взгляд идея хороша...
|
|
|
kipter |
14.12.2009, 18:19
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 6.12.2009 Пользователь №: 1281 Спасибо сказали: 0 раз(а) Репутация: 0 |
что теперь получается C# + XAML == QML + JavaScript =)
Сперва обрадовался... О думаю крута можно будет дизайнерам описывать красивые скины софтинке. Подумал что этот QML будет либо генерировать код, ну или ладно интерпретироваться но чисто только чтобы задавать структуру приложения, без логики. Потом порыл глубже (скачал, посмотрел экзамплы и демо) и расстроился.... Черт возьми этож теперь на С++ останется выполнение только узких тривиальных задач =( Будем писать классы указывая для них атрибуты чтобы наш класс хватался ЯваСкрипт машиной и этим QML Если сейчас у нас чаще всего интерфейс занимает половину ну или приличную часть С++ кода... то теоретически QML + JavaScript будет способен убрать вообще весь GUI C++ код. Разве что если только нам понадобиться создавать новые типы виджетов или что то отрисовывать, тогда прийдеться прибегнуть к С++ А вот почему расстроился... Сейчас дизайнер (если он вообще есть в фирме в которой вы работаете) рисует в фотопопе слоеный макет с интерфейсом, который режеться на картиночки, элементы и т д. Дизайнер рисует в десинджере структуру либо я описываю ее кодом, либо и то и другое, в зависимости от задачи. Даю имена классов, объектов дизайнеру и он пишет CSSку, где прикручиваются картинки и т д. Но я задаю правила! Потому что мне потом все это отлаживать, с этим работать, и управлять. И моя работа куда больше выглядит чем работа дизайнера, за что я и получаю. С этим QML, дизайнер сам вполне без меня сможет описать и интерфейс и взаимодействие с ним (JavaScript) и даже немалую часть бизнес логики приложения! и он уже будет задавать правила: Типа мне вот нужно чтобы вот сюда приходило то то а вот сюда то то иди пиши класс. А мне только штамповать классы с атрибутами которые ему нужны. В случае если дизайнера в конторе нет, то прийдеться самим работать с этим языком разметки и javaScript от которого если честно меня со времен веб кодинга уже тошнит =( Может получиться так что дизайнеры станут более оплачиваемыми, Qt кодеры менее оплачиваемыми, либо на разработку интерфейса могут нанимать дополнительное студенческое лицо которое быстренько схавает этот QML + JS. Собственно опасность зарплата--; С другой стороны Рантайм ошибок убивающих софтинку станет меньше, ошибка исполнения JavaScript более контролируема и поправима. Опять же переходим к управляемому коду. Как не крутись двигаемся к тому чтобы писать прикладной софт на интерпретируемых разметках и языках программирования. Но конечно не хочется чтобы в скором будущем 30% кода был бы QML, 50% JavaScript и 20% C++ |
|
|
ufna |
14.12.2009, 18:29
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5 |
имхо, а я только рад такому. Точнее не то чтобы рад.. но если это делает возможность сделать проще да еще с дополнительными возможностями - я только за. Суть ведь в том, чтобы сделать конечный продукт, а сипипи.. привычное, стабильное, но.. все-таки не панацея.
|
|
|
ViGOur |
14.12.2009, 18:38
Сообщение
#5
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Я например вижу в этом только плюсы, так как программист не будет заниматься рюшечками и прочей ерундой, а будет делать ядро приложения, не отвлекаясь. А вот рюшечками и прочим смогут занимать уже другие люди. Того же HTML верстальщика посадил, немного переучил и все путем.
|
|
|
Litkevich Yuriy |
14.12.2009, 19:55
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Как не крутись двигаемся к тому чтобы писать прикладной софт на интерпретируемых разметках и языках программирования. я думаю это движение началось сначала с перехода от HEX-программаирования на асемблер, и далее к разделению труда - Разработчик_Библиотек/Разработчик_прикладного_ПО
|
|
|
SABROG |
14.12.2009, 23:24
Сообщение
#7
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Метод установки для MinGW (в README о нем ничего):
Распаковываем архив с исходниками QtDeclarative в любое место. Запускаем консоль с подготовленным окружением и затем заходим в папку с распакованными исходниками, находим файл declarative.pro и редактируем его в текстовом редакторе, добавляем в конец файла следующую строчку: Если этого не сделать, то не будут сгенерены .prl файлы и будет невозможным собрать утилиту qmlviewer или вообще любую другую программу, которая будет использовать QtDeclarative модуль.после чего заходим в подпапку src/declarative :
Формируем Makefile'ы:
Собираем: Вместо all можно собирать declarative 2 раза, по умолчанию он собирается в debug сборке, если указать mingw32-make release, то еще и в релизе.Устанавливаем QtDeclarative в исходники Qt.
Директивой install ставится только debug версия поэтому, чтобы установить еще и release версии .dll'ок надо скопировать следующие файлы вручную: qt-4.6.0-declarative\src\declarative\.obj\QtDeclarative4.dll -> qt-everywhere-opensource-src-4.6.0\bin\ qt-4.6.0-declarative\src\declarative\.obj\libQtDeclarative4.a -> qt-everywhere-opensource-src-4.6.0\lib\ qt-4.6.0-declarative\src\declarative\.obj\QtDeclarative.prl -> qt-everywhere-opensource-src-4.6.0\lib\ qt-4.6.0-declarative\src\declarative\.obj\QtDeclaratived.prl -> qt-everywhere-opensource-src-4.6.0\lib\ Затем копируем хедеры QtDeclarative в папку с исходниками Qt:
Собираем qmlviewer:
Далее возвращаемся на 2 директории назад, ищем папку bin и копируем утилиту: qt-4.6.0-declarative\bin\qmlviewer.exe -> qt-everywhere-opensource-src-4.6.0\bin\ Затем можно запустить утилиту, зайти, скажем, в папку qt-4.6.0-declarative/demos/declarative/calculator и выбрать calculator.qml. Лично я при выходе из утилиты qmlviewer получил краш. Затем попробуем собрать демку minehunt, в ней используется и C++ тоже:
Запускается, работает и даже не упала. К сожалению мне так и не удалось заставить работать QtDeclarative в связке с QtCreator'ом. А именно запускать на выполнение .qml проекты, всегда получаю:
Я не знаю какой процесс он пытается запустить и что ему для этого нужно. Вижу, что в исходниках QtDeclarative многое подготовлено для внедрения в Qt, вроде бы есть генератор документации, но это всего лишь .pri файл, который нигде не используется, вроде бы есть qml дебаггер как плагин к QtCreator'у. К сожалению, после мучений со сборкой у меня отпало всякое желание разбираться с QML до тех пор, пока его официально не внедрят в следующую версию Qt, пока он не начнет собираться без проблем наряду с другими модулями Qt. |
|
|
kipter |
15.12.2009, 4:33
Сообщение
#8
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 6.12.2009 Пользователь №: 1281 Спасибо сказали: 0 раз(а) Репутация: 0 |
У меня и моих коллег по работе также возникли проблемы с сборкой для msvc2008, если собирать по инструкции то сборка то пройдет успешно, но программы (ваши программы) использующие qml в том числе утилита [qmlviewer] могут через раз падать в рантайме, причем на некоторых запусках все ок, на некоторых падение. И именно из-за библиотек.
Сборка по следующей инструкции проявила полную стабильность: 1) распаковываете qt-4.6.0-declarative.zip 2) содержимое (папки include, src, tools обязательно, остальное по желанию) копируете в вашу директорию Qt, замены каких либо файлов по идее быть не должно, у меня папки сели без запросов на замену файлов. 3) У вас должна быть "переменная окружения" с путем к библиотеке на которую вы ставите declarative. у меня она называется %QTVA% и имеет путь X:\Qt\WinPC-4.6.0-Shared 4) запускаете Visual Studio 2008 Command Prompt и переходите в папку: cd %QTVA%\src\declarative 5) выполняем следующее: qmake -spec %QTVA%\mkspecs\win32-msvc2008 -tp vc "declarative.pro" -o "declarative.vcproj" QMAKE_INCDIR_QT=%QTVA%\include QMAKE_LIBDIR_QT= QMAKE_LIBDIR=%QTVA%\lib QMAKE_UIC=%QTVA%\bin\uic.exe QMAKE_MOC=%QTVA%\bin\moc.exe QMAKE_RCC=%QTVA%\bin\rcc.exe QMAKE_QMAKE=%QTVA%\bin\qmake.exe 6) в папке %QTVA%\src\declarative появиться файл declarative.vcproj запускаете его и уже в студии делаете пакетную сборку (Build->Batch Build-> [ClackClack checkbox] -> Build) Дебаг и Релиз версии DLLки будут копирнуты в bin, а вот в lib автоматом ничего не попадет =( 7) заходим в папку: cd %QTVA%\src\declarative\.obj и копируем файлы: QtDeclarative4.lib, QtDeclaratived4.lib, QtDeclarative.prl, QtDeclaratived.prl в %QTVA%\lib Делаем копии QtDeclarative4.lib, QtDeclaratived4.lib, и называем их QtDeclarative.lib, QtDeclaratived.lib это понадобиться для сборки утилиты у который прописаны именно эти имена lib файлов ВСЕ на этом ваш QML готов к работе, осталось собрать утилиту. Для сборки утилиты просмотра qml файлов: 1) cd %QTVA% \tools\qmlviewer 2) qmake -spec %QTVA%\mkspecs\win32-msvc2008 -tp vc "qmlviewer.pro" -o "qmlviewer.vcproj" QMAKE_INCDIR_QT=%QTVA%\include QMAKE_LIBDIR_QT= QMAKE_LIBDIR=%QTVA%\lib QMAKE_UIC=%QTVA%\bin\uic.exe QMAKE_MOC=%QTVA%\bin\moc.exe QMAKE_RCC=%QTVA%\bin\rcc.exe QMAKE_QMAKE=%QTVA%\bin\qmake.exe 3) Запускаем qmlviewer.vcproj, деламем пакетную сборку релиз версии и наслаждаемся =) (Build->Batch Build-> [Clack Release checkbox] -> Build) утилита будет в папке bin P.S вы можете установить QtCreator-pulse-qml в его папке bin утилита, не знаю работает ли она лучше но темнеменее. Впрочем в некоторых демо и экзамплах я замечал зависания и последующий вылет, и немного не понятна причина... может быть она в утилите, может быть в QML/JS коде, а может даже этот модуль библиотеки сыроват =) |
|
|
vfilatov |
11.2.2011, 15:08
Сообщение
#9
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 2.3.2010 Пользователь №: 1502 Спасибо сказали: 1 раз(а) Репутация: 0 |
Ни у кого не завалялся qt-4.6.0-declarative.zip?
Ссылка на сайте Нокии битая... |
|
|
Текстовая версия | Сейчас: 27.12.2024, 16:59 |