Во время работы над своей презентацией для Qt developer days 2012 (QtCore in depth), я произвёл сравнение производительности QMap и QHash и подумал, что неплохо было бы поделиться результатами в этой короткой статье.
Читать полностью »
Рубрика «Qt Software» - 10
QMap vs. QHash: небольшой бенчмарк
2013-02-20 в 11:38, admin, рубрики: c++, qt, Qt Software, qt4, qt5, контейнеры, переводыKDE Plasma Active запустили на Nexus 7
2013-02-17 в 10:22, admin, рубрики: android, kde, linux, Nexus 7, open source, Qt Software, метки: android, kde, linux, Nexus 7, open sourceЕсли вам интересна тема Ubuntu Phone, то вы просто обязаны знать о всех возможностях Linux-сообщества!
Ruediger Gad — Linux разработчик — опубликовал видео (под катом), на котором демонстрирует работу KDE Plasma Active на Nexus 7. Сейчас вы наверно подумали, очередной линукс, в очередной раз запустили, а тормозит ужасно и ничего не работает… А вот и нет! Демонстрируется поддержка 3D ускорителя в тесте попугаев glmark2-es2, аппаратное ускорение видео на примере 1080p ролика, играбельность в марио в эмуляторе, поддержку Bluetooth, QZeeControl в качестве беспроводного манипулятора.
Читать полностью »
Использование кадрового буфера в Qt 5
2013-02-10 в 13:55, admin, рубрики: c++, OpenGL, qt, Qt Software, qt5, переводы Во времена Qt 4 можно было ускорить рисование QPainter с OpenGL используя класс QGLPixelBuffer: он предоставляет удобный и быстрый способ создания поверхности для рисования, рендеринга на неё (с помощью обычных методов QPainter) и захвата конечного результата как QImage.
В Qt 5 QGLPixelBuffer по-прежнему существует, но он считается устаревшим в пользу объектов кадрового буфера, обёрнутых в Qt в класс QOpenGLFramebufferObject. Однако QOpenGLFramebufferObject это не QPaintDevice, поэтому мы не можем использовать QPainter прямо на нём.Читать полностью »
Сборка Qt5 в Visual Studio 2012 или я могу пришить глаз кенгуру пока течет мой любимый кетчуп
2013-02-07 в 19:31, admin, рубрики: qt, Qt Software, qt5, qtwebkit, Visual Studio, visual studio 2012, vs2012, windows, сборка, метки: Qt, qt5, qtwebkit, visual studio 2012, vs2012, сборка Не так давно вышел новый Qt, обещающий большое и светлое будущее, и я решил опробовать сие чудо. Но для начала работы с этим чудом мне понадобилось собрать его для моей установленной студии 2012 года из исходных файлов. А сборка оказалась далеко не тривиальной (хотя кривость моих рук никто не отменял – таким студентам, как я, руки необходимо об забор выпрямлять).
Читать полностью »
Вышли Qt 5.0.1 и Qt Creator 2.6.2
2013-02-03 в 10:17, admin, рубрики: qt, qt creator, Qt Software, qt5, Программирование, метки: Qt, qt creator, qt5 Оказывается, 31 января вышло обновление Qt 5.0.1 с более 400 улучшений (как сообщается) по сравнению с Qt 5.0.0. Новая версия не приносит новой функциональности, лишь исправления и улучшения.
Читать полностью »
QThread: Вы не делаете это неправильно
2013-01-25 в 12:42, admin, рубрики: multithreading, qt, Qt Software, qt4, qt5, QThread, многопоточность, переводы Эта статья об использовании QThread является ответом на другой пост «You're doing it wrong» («Вы делаете это неправильно»), опубликованный три года назад, моим коллегой в то время, Брэдом.
В своём посте Брэд рассказывает, что он видит, как многие пользователи наследуют класс QThread, добавляют несколько слотов и делают в конструкторе примерно так:
moveToThread(this);
Они перемещают поток сам в себя. Как говорит Брэд, это неправильно: QThread должен быть интерфейсом для управления потоком.
Читать полностью »
QtQuick 2.0 и шейдеры OpenGL
2013-01-23 в 12:45, admin, рубрики: Digia, glsl, OpenGL, QML, qt, Qt 5, qt quick, Qt Software, qt5, shaders, метки: Digia, glsl, OpenGL, QML, Qt, Qt 5, qt quick, qt software, qt5, shaders На хабрахабре уже была статья «Применение шейдеров OpenGL в QML», в которой рассмотрены теория и примеры использования шейдеров в Qt Quick 1.0. Прошло больше года, фреймворк претерпел массу изменений: состоялся релиз Qt 5 и шейдеры теперь являются частью Qt Quick 2.0, а не вынесены в отдельный модуль и синтаксис их использования, естественно, также изменился. Сразу оговорюсь, что с GLSL я сам знаком весьма посредственно, зато имею опыт работы с QML, поэтому в этой статье хочу разобрать работу с фрагментным шейдером на примере компонента LedScreen, разработанного сообществом QUIt Coding (наверняка многие из вас видели его в демо-ролике на YouTube):

Читать полностью »
2013 год только начинается. Чего же мы можем ожидать в нём для языка С++?
Ещё в прошлом году стало заметно значительное оживление в мире С++. Язык становится более динамичным, это заметно. С++03 правил много лет, без нового cтандарта С++ почти целое десятилетие мы наблюдали за развитием библиотек, статического программирования, вещей типа мета-программирования на шаблонах — и всё это неплохо эволюционировало. Но вот сам язык при этом никуда не двигался.
В 2013 году это изменится. Во-первых, начиная с этого года новый стандарт С++11 наконец станет доступен широкой аудитории, в виду полноценной его поддержке в Visual Studio 2012, Clang 3.2 и GCC 4.8. Влияние нового стандарта на библиотеки и фреймворки ощущается уже сейчас, к примеру многое из него нашло своё применение в Qt5. Но стандарту С++11 не суждено стать фундаментом разработки на следующее десятилетие. Скорее, его можно воспринимать как хороший промежуточный этап, шаг в сторону эволюции языка, которая продолжится в 2013-ом году и позже.
Это одна из причин почему я думаю, что 2013 год станет особенным для С++. В этом году начнется работа над новым стандартом — С++14. В апреле пройдет встреча комитета по стандартизации С++ в Бристоне (Великобритания) и мы уже сможем представить себе наброски будущего стандарта. В октябре пройдет встреча в Чикаго, где должен быть уже сформирован более или менее чёткий черновик, который в начале 2014-го станет новым ISO-стандартом.
Что же нам предложит С++14?Читать полностью »
Применение D-Bus в веб-системах
2013-01-16 в 5:06, admin, рубрики: c++, D-bus, php, qt, Qt Software, web-разработка, Веб-разработка, метки: c++, D-bus, PHP, Qt, web-разработкаВ процессе разработки нескольких Интернет-сервисов мы заметили, что значительная часть их функционала является общей, и руководствуясь принципом DRY (Don't Repeat Yourself — не повторяйся), приняли решение вынести общий функционал в отдельный модуль.
К модулю были предъявлены следующие требования:
- независимость от использующих его сервисов;
- простота «клиентского» кода;
- многопоточность и высокая скорость работы.
