Рубрика «qt5» - 6

На хабрахабре уже была статья «Применение шейдеров OpenGL в QML», в которой рассмотрены теория и примеры использования шейдеров в Qt Quick 1.0. Прошло больше года, фреймворк претерпел массу изменений: состоялся релиз Qt 5 и шейдеры теперь являются частью Qt Quick 2.0, а не вынесены в отдельный модуль и синтаксис их использования, естественно, также изменился. Сразу оговорюсь, что с GLSL я сам знаком весьма посредственно, зато имею опыт работы с QML, поэтому в этой статье хочу разобрать работу с фрагментным шейдером на примере компонента LedScreen, разработанного сообществом QUIt Coding (наверняка многие из вас видели его в демо-ролике на YouTube):
QtQuick 2.0 и шейдеры OpenGL
Читать полностью »

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

Читать полностью »

Всех с наступающим!

Digia предлагает Qt5 для Windows только скопилированную под Visual Studio 2010, причем с параметрами, которые не для всех идеальны. В частности это

  • Собственно, сама необходимость использовать только VS2010
  • зависимость Qt5Core.dll (и соответственно вашего приложения) от ICU. Это следущие DLL-ки: icuin49.dll, icudt49.dll, icuuc49.dll
  • зависимость Qt5Gui.dll от Angle Library. Это следущие DLL-ки — libEGL.dll, libGLESv2.dll
  • зависимость от Visual C++ 2010 Runtime (msvcr100.dll, msvcp100.dll). Для большинства это пожалуй не минус, т.к. в случае 2008 студии идут другие DLL-ки (msvcp90.dll и msvcr90.dll). Однако, во-первых последние стоят на многих машинах, а во-вторых в конце статьи будет приведет удобный способ таскать их с собой без необходимости устанавливать Microsoft Visual C++ 2008 Redistributable Package при установке вашего приложения.

В конце также будет рассмотрен вопрос последущего распространения приложений.
Читать полностью »

Они все-таки успели!
Буквально менее часа назад, новый владелец Qt Framework — компания Digia, объявило о выходе долгожданного релиза Qt 5.0

Читать полностью »

Мы с Vass записали и выложили вторую серию второго сезона подкаста «Заметки о Qt».
Подкаст «Заметки о Qt» s02e02
Сам подкаст на rpod.ru — qt-notes.rpod.ru/287388.html
Результаты конкурса внутри!
Читать полностью »

Мы с Vass записали и выложили первую серию второго сезона подкаста «Заметки о Qt».
Подкаст «Заметки о Qt» s02e01
Сам подкаст на rpod.ru — qt-notes.rpod.ru/284337.html
Теперь с конкурсом!
Читать полностью »

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

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

Существуют три основные проблемы, препятствующие нам вынести анимацию в отдельный поток:

  • Анимация обновляющаяся при изменении свойств. Свойства являются частью QObject и системы мета-объектов. Чтобы избежать безумия с потоками, нам разрешается лишь читать и писать эти свойства в потоке графического интерфейса пользователя.
  • Свойства часто имеют привязки и связи в QML, которые вызывают JavaScript-код, при наступлении неких событий, который также должен выполняться в потоке GUI.
  • Цикл рендера в библиотеке QtQuick завязан на поток GUI, а следовательно, когда данный поток заблокирован, анимация не обновляется.

Читать полностью »

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

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

Давайте посмотрим на простую функцию:

QCoreApplication app(argc, argv);
QTimer::singleShot(3000, &app, SLOT(quit()));
return app.exec();

Это Qt-приложение, не имеющее графического интерфейса. Оно работает 3 секунды и затем завершается.
Читать полностью »

Привет!

В этой статье я расскажу о работе с веб-камерой из Qt5 под Windows (но пример также должен работать под Linux и Mac OS X с установленным плагином gstreamer).

Захват изображений с вебкамеры через QCamera

Если интересно, как сделать вот такое приложение и преодолеть возникающие при этом проблемы, то прошу под кат.Читать полностью »

Привет!

В этой статье я расскажу о работе с веб-камерой из Qt5 под Windows (но пример также должен работать под Linux и Mac OS X с установленным плагином gstreamer).

Захват изображений с веб камеры через QCamera

Если интересно, как сделать вот такое приложение и преодолеть возникающие при этом проблемы, то прошу под кат.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js