Рубрика «qt» - 41

Эта статья — введение в программирование без блокировок (неблокирующая синхронизация). Я пишу ее, потому что она будет ключем к пониманию моей следующей статьи [от пер.: перевод в процессе]. Она же является основой моего выступления на Qt Developer Days 2011.

Программирование без блокировок — это подход к разработке алгоритмов и структур данных, которые не нуждаются в блокировке или мьютексах.

Когда разным потокам в вашей программе необходимо получить доступ к одним и тем же данным, необходимо убедиться, что эти данные всегда во время использования находятся в целостном актуальном (когерентном) состоянии. Один из путей достижения этой цели — делать блокировки. Поток овладевает мьютексом, для записи данных. Этот поток может работать со структурами данных и держать их в неопределенном состоянии, но это не приведет к проблеме, т.к. другие потоки в это время не смогут получить доступ к данным, потому что они будут заблокированы, ожидая освобождения мьютекса. Пока поток ожидает, операционная система переключится на другие потоки или процессы, а может просто даст процессору отдохнуть.
Читать полностью »

Забавный день,!

Спустя ровно год активной разработки мы — все те, кто участвовал в разработке qutIM, рады вам представить релизную версию 0.3 под кодовым именем Nolwe.
За прошедший год было исправлено огромнейшее количество ошибок, добавлены недостающие фичи и переработаны некоторые плагины.

qutIM 0.3: Через тернии к звёздам!

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

На Хабре и в Сети достаточно много статей на тему QML, но все они оставляют за кадром некоторые моменты. Сегодня я попытаюсь приподнять занавес над некоторыми очевидными моментами для тех, кто имел дело со связкой QML и C++, и не таких очевидных для тех, кто только начинает вникать в нюансы этой замечательной технологии.
Итак. Допустим, у нас есть интерфейс приложения на QML и C++ класс с логикой работы. Как же нам собрать все это в единое целое?Читать полностью »

Вступление

Используя порт Qt для Android я наткнулся на проблему работы со звуком. На данный момент QtMultimediaKit для Android не работает. Проблема связана с банальной нехваткой либы FFmpeg, но багу фиксить не спешат, т.к. у комьюнити пока другие приоритеты. Разбираться, как работает Necessitas мне абсолютно не хотелось, да и нашелся человек в списках рассылки, который проделал необходимую работу, но почему-то не поделился результатами своего труда. Я написал ему письмо, но ответа к сожалению не последовало. Ну и ладно, подумал я… И тут на одном из форумов наткнулся на предложение использовать OpenSL ES, который появился в Android начиная с версии 2.3. Скажу сразу, что у меня ничего путного не получилось. Что такое OpenSL ES я до этого не знал. А значит, надо заполнять пробелы в знаниях. Тем более повод есть.

Назвать OpenSL ES библиотекой у меня даже как-то язык не поворачивается. Это скорее спецификация для 2D и 3D аудио на языке Си. Первый взгляд на API привел меня в ужас. Все показалось каким-то мрачным и запутанным. Но, как говорится, не все то золото, что блестит. Позже, пытаясь реализовать QAndroidMediaPlayer, я проникся духом “библиотеки” и первое мнение рассеялось в пух и прах.
Читать полностью »

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

0 Введение

MVC – паттерн проектирования позволяющий эффективно разделить модель данных, представление и обработку действий. В состав MVC входят три паттерна проектирования: наблюдатель, стратегия и <a rel="nofollow"Читать полностью »

Прошло совсем немного времени после открытия предзаказа и поступления в продажу 6-го Лайтпака. Буквально на днях я получил заветную посылку с последней ревизией устройства. Если коротко, Лайтпак — это фоновая подсветка монитора или телевизора. В продаже есть 2 вида подсветки, это версия для монитора и версия для телевизора. В версии для телевизоров есть отдельный блок питания и вместо 10 отдельных светодиодов используются 30 светодиодов на лентах. В итоге получается по 3 диода на канал, и за счет этого площадь подсветки увеличивается. Подсветку я ставил на монитор диагональю 24", в будущем планируюЧитать полностью »

Прошло совсем немного времени после открытия предзаказа и поступления в продажу 6-го Лайтпака. Буквально на днях я получил заветную посылку с последней ревизией устройства. Если коротко, Лайтпак — это фоновая подсветка монитора или телевизора. В продаже есть 2 вида подсветки, это версия для монитора и версия для телевизора. В версии для телевизоров есть отдельный блок питания и вместо 10 отдельных светодиодов используются 30 светодиодов на лентах. В итоге получается по 3 диода на канал, и за счет этого площадь подсветки увеличивается. Подсветку я ставил на монитор диагональю 24", в будущем планируюЧитать полностью »

image
Нет никакой необходимости устанавливать Qt заранее на целевую систему, не нужно тянуть предварительно скомпилированные библиотеки для Windows.

Я проделал данный трюк на двух платформах, на Gentoo x86_64 установленной на VitualBox c оболочкой KDE 4.8 и соответвующими библиотеками Qt, и на домашнем сервере Gentoo x86_64 (Intel® Core(TM) i5 CPU 760 @ 2.80GHz) без какой либо графической оболочки и без предустановленных библиотек Qt.

Настройка кросс-компилятора

В принципе для кросс-компиляции понадобятся следующие утилиты:

image
Нет никакой необходимости устанавливать Qt заранее на целевую систему, не нужно тянуть предварительно скомпилированные библиотеки для Windows.

Я проделал данный трюк на двух платформах, на Gentoo x86_64 установленной на VitualBox c оболочкой KDE 4.8 и соответвующими библиотеками Qt, и на домашнем сервере Gentoo x86_64 (Intel® Core(TM) i5 CPU 760 @ 2.80GHz) без какой либо графической оболочки и без предустановленных библиотек Qt.

Настройка кросс-компилятора

В принципе для кросс-компиляции понадобятся следующие утилиты:

Доброго всем хабрадня!

Сегодня я хочу рассказать об одном из методов синхронной и асинхронной загрузки изображения из сети. Чтобы статья была не скучной, загруженные изображения мы попробуем каким-либо образом обработать средствами Qt.
Qt Software / Синхронная и асинхронная загрузка изображения из сети с последующей обработкой

Как будем загружать?

Для загрузки изображений мы будем использовать QNetworkAccessManager и QEventLoop, а так же немного мета-объектов. Загружать будем по HTTP изображение в любом формате, из поддерживаемых Qt. Ну, ещё будем обрабатывать редиректы.

Как обрабатывать-то будем?

Есть замечательный класс QGraphicsEffect с подклассами. Но мы с нимиЧитать полностью »


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