crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Выпущен Qt Declarative для Qt 4.6.0
Litkevich Yuriy
  опции профиля:
сообщение 14.12.2009, 16:18
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9655
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Новость в лаборатории http://labs.trolltech.com/blogs/2009/12/14...t-460-released/
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 14.12.2009, 18:18
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3289
Регистрация: 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


Мастер
******

Группа: Модератор
Сообщений: 3289
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Я например вижу в этом только плюсы, так как программист не будет заниматься рюшечками и прочей ерундой, а будет делать ядро приложения, не отвлекаясь. А вот рюшечками и прочим смогут занимать уже другие люди. Того же HTML верстальщика посадил, немного переучил и все путем. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.12.2009, 19:55
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9655
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(kipter @ 14.12.2009, 21:19) *
Как не крутись двигаемся к тому чтобы писать прикладной софт на интерпретируемых разметках и языках программирования.
я думаю это движение началось сначала с перехода от HEX-программаирования на асемблер, и далее к разделению труда - Разработчик_Библиотек/Разработчик_прикладного_ПО
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 14.12.2009, 23:24
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Метод установки для MinGW (в README о нем ничего):

Распаковываем архив с исходниками QtDeclarative в любое место.
Запускаем консоль с подготовленным окружением и затем заходим в папку с распакованными исходниками, находим файл declarative.pro и редактируем его в текстовом редакторе, добавляем в конец файла следующую строчку:

*-g++*: CONFIG += create_prl
Если этого не сделать, то не будут сгенерены .prl файлы и будет невозможным собрать утилиту qmlviewer или вообще любую другую программу, которая будет использовать QtDeclarative модуль.

после чего заходим в подпапку src/declarative :
cd src\declarative

Формируем Makefile'ы:
qmake

Собираем:
mingw32-make all
Вместо all можно собирать declarative 2 раза, по умолчанию он собирается в debug сборке, если указать mingw32-make release, то еще и в релизе.

Устанавливаем QtDeclarative в исходники Qt.
mingw32-make install

Директивой 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:
xcopy /E /Y ..\..\include\QtDeclarative %QTDIR%\include\QtDeclarative


Собираем qmlviewer:
cd ..\..\tools\qmlviewer
qmake
mingw32-make release


Далее возвращаемся на 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++ тоже:
cd /demos/declarative/minehunt
qmake
mingw32-make release
release\minehunt.exe


Запускается, работает и даже не упала.

К сожалению мне так и не удалось заставить работать QtDeclarative в связке с QtCreator'ом. А именно запускать на выполнение .qml проекты, всегда получаю:
Starting ...
The process could not be started!


Я не знаю какой процесс он пытается запустить и что ему для этого нужно. Вижу, что в исходниках 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

8) Делаем копии 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?
Ссылка на сайте Нокии битая...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2019, 23:05