Russian Qt Forum

Qt => Общие вопросы => Тема начата: Digia от Сентябрь 08, 2014, 15:38



Название: Доступна версия Qt 5.4 Alpha
Отправлено: Digia от Сентябрь 08, 2014, 15:38
Подготовка к выходу Qt 5.4 идет полным ходом, и сегодня мы представляем релиз Qt 5.4 Alpha. Как обычно, альфа-версия предоставляется для ознакомления в виде исходного кода. Исполняемые инсталляторы будут собраны для Beta релиза, который планируется через несколько недель. Сейчас список нововведений для Qt 5.4 «заморожен», и следующую пару месяцев мы посвятим финальной доработке и «шлифовке» заявленного функционала. Ниже в статье мы расскажем о том,  чего ожидать от Qt 5.4 и что конкретно будет представлено в релизе Qt 5.4 Alpha.

Полная поддержка WinRT
С выходом Qt 5.4 мы получим полную поддержку WinRT в Qt. Основываясь на отзывах пользователей и опыте работы с Qt 5.3, мы постарались улучшить поддержку WinRT в Qt. Теперь WindowsPhone 8.1 является  минимально поддерживаемой версией этой мобильной операционной системы, что позволяет избавиться от необходимости использования D3D компилятора и значительно упрощает установку разрабатываемого приложения на устройство. Теперь большинство модулей Qt полностью поддерживаются на WinRT, а это значит, что с выходом Qt 5.4 Вы сможете легко портировать Ваши Qt-приложения на смартфоны с WindowsPhone ОС, планшеты с Windows RT и компьютеры с поддержкой Modern UI, а также публиковать приложения в магазине приложений Windows Store.

Улучшения в разработке графики
Виджет QQuickWidget, впервые представленный в Qt 5.3, позволил разработчикам без особого труда отображать контент Qt Quick внутри Qt приложения, реализованного на виджетах. С выходом Qt 5.4 разработчикам будет доступен QOpenGLWidget, который заменит QGLWidget из версии Qt 4. QOpenGLWidget, новый виджет для отображения OpenGL контента, может быть использован как любой другой QWidget. Данное нововведение позволит отказаться от использования старого Qt OpenGL модуля, так как весь предоставляемый им функционал теперь может быть реализован другими модулями.
С выходом Qt 5.4 будет доступен новый QQuickRenderControl API для эффективного отображения контента Qt Quick 2 в объектах с фреймбуфером. В этих целях могут быть использованы как OpenGL рендер, предоставляемый Qt, так и средства визуализации сторонних разработчиков.  Благодаря новому модулю QQuickRenderControl API в Qt 5.4 появится возможность использования и “обёртывания” существующих OpenGL контекстов для осуществления взаимодействия Qt с другими графическими фреймворками. Также в Qt 5.4 будут включены  вспомогательные классы: QOpenGLWindow для отрисовки OpenGL в QWindow, QRasterWindow для отрисовки через QPainter в QWindow, а также появится поддержка изображений с 10 битами на канал цвета.
Теперь во время запуска Qt приложения на ОС Windows можно будет динамически выбирать между ANGLE и OpenGL, что устранит необходимость  дважды собирать приложение.

Android-стиль для элементов Qt Quick
Добавлена поддержка стиля Android для элементов Qt Quick:  теперь виджеты и контролы Qt Quick на данной платформе могут отображаться как нативные. Ранее применение стиля Android для виджетов было возможно только при помощи Ministro.

Qt Bluetooth и BluetoothLE
Теперь модуль Qt Bluetooth поддерживает стек BlueZ5.  Также доступна предварительная поддержка Bluetooth Low Energy.

Новый Qt WebEngine и Qt WebChannel
Основное нововведение Qt 5.4  - это новый Qt WebEngine, который предоставляет Qt-разработчикам все преимущества работы с Chromium 37. Данный API прост в использовании, а также легко поддаётся расширению. Были приложены немалые усилия, чтобы новый Qt WebEngine мог обеспечивать беспроблемную интеграцию графики, а именно отображение текстур Chromium напрямую в граф сцены OpenGL для Qt Quick. Ранее Qt WebEngine был представлен для Qt Enterprise Embedded, а с выходом Qt 5.4 он станет доступен на desktop-платформах – Linux, Mac OS X и Windows.
Также в Qt 5.4 будет представлен модуль Qt WebChannel, предназначенный для интеграции QML/C++ и HTML/JavaScript. Например, он может быть использован для предоставления функциональности QObject из С++ в JavaScript для Qt WebKit или Qt WebEngine.
В Qt 5.4 всё еще осуществляется поддержка Qt WebKit, но никаких нововведений касательно данного модуля не ожидается. В будущих релизах планируется полный отказ от Qt WebKit, так как новый Qt WebEngine предоставляет весь необходимый разработчикам функционал.

С полным списком нововведений версии Qt 5.4 вы можете ознакомиться на нашей wiki-странице: http://qt-project.org/wiki/New-Features-in-Qt-5.4

В данный момент ведется работа над модулями Qt Location и Qt 3D, но в состав Qt 5.4 они пока включены не будут.

Новые возможности лицензирования
С выходом Qt 5.4 для некоторых модулей будет применен новый вариант лицензирования -  LGPLv3. Так, например, Qt WebEngine будет доступен только под  лицензиями LGPLv3, GPLv2 и Qt Enterprise. Больше информации о планируемых изменениях в лицензировании Qt здесь: http://blog.qt.digia.com/blog/2014/08/20/adding-lgpl-v3-to-qt/

Если Вы являетесь пользователем Qt Enterprise, Вы можете скачать исходники Qt 5.4 Alpha через портал Qt Account. Для получения Open Source версии, пожалуйста, посетите сайт Qt Project.

С уважением,
команда Qt Digia RUS


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: Old от Сентябрь 08, 2014, 16:13
Подготовка к выходу Qt 5.4 идет полным ходом, и сегодня мы представляем релиз Qt 5.4 Alpha.
Ошибку, из-за которой QtCreator лагает при переключении раскладки, я надеюсь исправили?  ::)


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: navrocky от Сентябрь 08, 2014, 18:57
Самое нужное для мобильной разработки - поддержку WebView так и не сделали. Из-за этого отсекается очень много проектов, которые могли бы быть на Qt.

Я, конечно, понимаю, что пробросить нативный виджет в QtQuick2 на каждой платформе - нифига себе задачка, если вообще осуществимо, но хотя бы намекнули, что есть надежда и если есть то когда ожидать?

Если работы ведутся, то дайте ссыль, будем наблюдать, тестить )


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: kibsoft от Сентябрь 08, 2014, 19:51
Цитировать
Если работы ведутся, то дайте ссыль, будем наблюдать, тестить )

https://qt.gitorious.org/qt/qtwebview/source/c08eef29b45646643535e917f70492727160720b: - исходники
https://bugreports.qt-project.org/browse/QTBUG-32093 - тут в последнем комменте разъяснения


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: vregess от Сентябрь 08, 2014, 19:53
Самое нужное для мобильной разработки - поддержку WebView так и не сделали.

А можешь рассказать, почему это так важно?


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: BuRn от Сентябрь 08, 2014, 22:08
А что интересно по поводу сборщика мусора в QML...


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: kibsoft от Сентябрь 08, 2014, 22:54
А что интересно по поводу сборщика мусора в QML...
А что конкретно вы имеете в виду?
JS объекты сборщиком убиваются. Если только сделать возможность использования QSharedPointer в QML.


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: kibsoft от Сентябрь 08, 2014, 23:01
Самое нужное для мобильной разработки - поддержку WebView так и не сделали.

А можешь рассказать, почему это так важно?
Сейчас во многих мобильных приложениях используются карты, авторизация с помощью OAuth 2.0(через социалки), может еще чего. Без QML WebView можно только использовать нативный WebView в отдельной Activity(для андроида), что не всегда удобно. Если взять карту, например, то ее невозможно будет показать рядом с другим QML контентом, а только на отдельной странице.


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: BuRn от Сентябрь 08, 2014, 23:14
А что интересно по поводу сборщика мусора в QML...
А что конкретно вы имеете в виду?
JS объекты сборщиком убиваются. Если только сделать возможность использования QSharedPointer в QML.
У них там с ним конкретные траблы, загибается


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: kibsoft от Сентябрь 09, 2014, 01:07
Цитировать
У них там с ним конкретные траблы, загибается
Странно, писал не одно приложение на C++/QML, но проблем со сборщиком не встречал.
Даже интересно стало, а можно пример какой-нибудь?
Ну или хотя бы подробнее о проблеме.


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: vregess от Сентябрь 09, 2014, 06:00
Если взять карту, например, то ее невозможно будет показать рядом с другим QML контентом, а только на отдельной странице.

Так а ведь есть WebView QML Type (http://qt-project.org/doc/qt-5/qml-qtwebkit-webview.html) или этого не достаточно?
Я почему спрашиваю, начался мобильный проект android/iOS, и хочется прояснить для себя некоторые моменты.


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: kibsoft от Сентябрь 09, 2014, 09:38
Если взять карту, например, то ее невозможно будет показать рядом с другим QML контентом, а только на отдельной странице.

Так а ведь есть WebView QML Type (http://qt-project.org/doc/qt-5/qml-qtwebkit-webview.html) или этого не достаточно?
Я почему спрашиваю, начался мобильный проект android/iOS, и хочется прояснить для себя некоторые моменты.
Так в том и проблема, что на мобильных ОС он не работает :) Как и WebKit в целом. Они делают workaround - рендеринг нативного WebView в QML (ссылку я дал выше), пока QtWebEngine не смогут перевести на мобилы.


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: vregess от Сентябрь 09, 2014, 10:53
Так в том и проблема, что на мобильных ОС он не работает :) Как и WebKit в целом.

Вот в чем дело, ну теперь понятно, спасибо. Тогда я присоединяюсь к navrocky )


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: navrocky от Сентябрь 09, 2014, 12:27
Почитал про WebView, там оказывается два варианта уже:

1) первый пилится официально, и он имеет существенные ограничения по внешнему виду, нативный контрол просто размещается поверх Quick сцены. Я так понял уже скоро его покажут публично.

2) второй вариант пилит некий Сергей (2gis) https://gitorious.org/qtandroidoffscreenviews, он рендерит нативный контрол в текстуру и потом уже отображает в сцене, соответственно поддерживается прозрачность, размещение QML компонентов поверх, трансформации. Но не поддерживаются сложные сайты которые содержат в себе контейнеры с другими компонентами (видео, флэш)

В общем, уже не плохо  :)


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: BuRn от Сентябрь 09, 2014, 19:08
Цитировать
У них там с ним конкретные траблы, загибается
Странно, писал не одно приложение на C++/QML, но проблем со сборщиком не встречал.
Даже интересно стало, а можно пример какой-нибудь?
Ну или хотя бы подробнее о проблеме.
Возьмите скроллвью, внутри него репитор, элементов на 1000+, каждый элемент нагрузите посерьезнее, чем обычный квадрат, получите сегфолт


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: kibsoft от Сентябрь 09, 2014, 19:28
Цитировать
Возьмите скроллвью, внутри него репитор, элементов на 1000+, каждый элемент нагрузите посерьезнее, чем обычный квадрат, получите сегфолт
1) А при чем тут сборщик?
2) Пример не совсем удачный, для этого ListView придуман.


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: BuRn от Сентябрь 09, 2014, 21:44
Цитировать
Возьмите скроллвью, внутри него репитор, элементов на 1000+, каждый элемент нагрузите посерьезнее, чем обычный квадрат, получите сегфолт
1) А при чем тут сборщик?
2) Пример не совсем удачный, для этого ListView придуман.
Проверьте под гдб на чем упадет, листвью не имеет скрола на сколько мне известно, полоски скрола


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: navrocky от Сентябрь 09, 2014, 23:10
Цитировать
Возьмите скроллвью, внутри него репитор, элементов на 1000+, каждый элемент нагрузите посерьезнее, чем обычный квадрат, получите сегфолт
1) А при чем тут сборщик?
2) Пример не совсем удачный, для этого ListView придуман.
Проверьте под гдб на чем упадет, листвью не имеет скрола на сколько мне известно, полоски скрола
В документации рекомендуют делать так:
Код
ScrollView {
   ListView {
       ...
   }
}

А создавать сразу кучу компонентов с помощью Repeater не разумно, тут любая система не выдержит и упадет, либо сожрет всю память и будет выполняться неприлично долго.


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: BuRn от Сентябрь 10, 2014, 09:03
Цитировать
Возьмите скроллвью, внутри него репитор, элементов на 1000+, каждый элемент нагрузите посерьезнее, чем обычный квадрат, получите сегфолт
1) А при чем тут сборщик?
2) Пример не совсем удачный, для этого ListView придуман.
Проверьте под гдб на чем упадет, листвью не имеет скрола на сколько мне известно, полоски скрола
В документации рекомендуют делать так:
Код
ScrollView {
   ListView {
       ...
   }
}

А создавать сразу кучу компонентов с помощью Repeater не разумно, тут любая система не выдержит и упадет, либо сожрет всю память и будет выполняться неприлично долго.
Прежде чем предлагать такой вариант решения проблемы, стоит проверить что произойдет. Нельзя так делать, скроллвью башню сорвет из за листвью


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: navrocky от Сентябрь 10, 2014, 09:56
Прежде чем предлагать такой вариант решения проблемы, стоит проверить что произойдет. Нельзя так делать, скроллвью башню сорвет из за листвью

Проверено и уже давно.

http://qt-project.org/doc/qt-5/qml-qtquick-controls-scrollview.html#details


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: BuRn от Сентябрь 10, 2014, 20:03
Прежде чем предлагать такой вариант решения проблемы, стоит проверить что произойдет. Нельзя так делать, скроллвью башню сорвет из за листвью

Проверено и уже давно.

http://qt-project.org/doc/qt-5/qml-qtquick-controls-scrollview.html#details

Не верьте докам, могу привести пример с которым получится лажа


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: navrocky от Сентябрь 10, 2014, 21:52
Ну давайте, заинтриговали. Возможно это будет претендент для отправки в багтрекер.


Название: Re: Доступна версия Qt 5.4 Alpha
Отправлено: BuRn от Сентябрь 10, 2014, 23:37
Ну давайте, заинтриговали. Возможно это будет претендент для отправки в багтрекер.
На счет сборщика мусора там уже есть баг, на счет скроллвью и листвью позже скину