Обновить
4.84

Qt *

Кроссплатформенный инструментарий разработки ПО

Сначала показывать
Период
Уровень сложности

Релиз Qt Creator 2.3.0

Время на прочтение1 мин
Охват и читатели1.6K
image
Мы рады сообщить сегодня о выпуске нового релизе Qt Creator 2.3.0. Релиз включает множество как мелких, так и крупных улучшений для разработчиков. Так как вы, возможно, не следили за пререлизами, повторю некоторые из наиболее важных изменений:
Читать дальше →

Экспорт QML файлов из Photoshop и GIMP

Время на прочтение1 мин
Охват и читатели4.2K
Создание QML файлов — невероятно веселая задача, но довольно часто проблематично разбить замечательные Photoshop шаблоны, которые прислал вам дизайнер, в полностью готовый интерфейс Qt Quick. Было бы замечательно, если бы мы смогли автоматизировать этот процесс? Я тоже так подумал, и написал пару полезных скриптов. Первый — скрипт для Photoshop. Просто положите его совместно с другими скриптам, и у Вас появится новый пункт в меню «Export QML», с помощью которого можно перебросить сцену в один QML-файл с элементами Text или Image из каждого слоя. Скрипт также можно использовать и для векторной графики, поскольку в Adobe Illustrator есть удобная опция экспорта в Photoshop.

Я сделал небольшое демонстрационное видео, чтобы лучшее продемонстрировать, как это работает на практике:

Читать дальше →

Qt + Kinetic = Eye-candy за полчаса

Время на прочтение5 мин
Охват и читатели3.2K
В процессе разработки новой версии QutIMа возникла потребность переписать систему уведомлений, так как старая имела множество недостатков.

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

Небольшое видео с демонстрацией возможностей:



неплохо, правда?

Qt 4.5 и Qt Creator 1.0 теперь с нами!

Время на прочтение1 мин
Охват и читатели2.5K
Очередная версия библиотеки Qt теперь может радовать каждого. Этот релиз принес разработчикам важный и неожиданный сюрприз: Qt распространяется на LGPL. А также есть и другие приятные подарочки от Qt Software:
  • Значительно увеличилась скорость работы графической подсистемы
  • Улучшена интеграция с WebKit
  • Также Qt был портирован на фреймворк Cocoa от Apple.

Подробный список на официальном сайте

Qt Creator


Qt Creator — это легковесная кросс-платформенная среда разработки, заточенная для разработки под C++ и Qt. Разработка Qt Creator велась с прицелом на две вещи: полностью кросс-платформенная разработка; и простота использования для тех, кто только начинает знакомиться с Qt.

Среда Qt Creator включает эффективный набор средств для создания и тестирования программ на Qt:
  • Продвинутый редактор кода на языке C++
  • Контекстная помощь
  • Визуальный отладчик
  • Управление исходным кодом
  • Средства управления проектом и сборкой

Qt Creator также распространяется под лицензией LGPL 2.1. На данный момент для разработки поддерживаются только десктопные операционные системы (Windows, Linux и Mac OS), но поддержка платформ для встраиваемых устройств возможно будет добавлена в следующие несколько месяцев.

Всех разработчиков на Qt поздравляю с этим знаменательным событием!

Работа с базами данных в Qt

Время на прочтение6 мин
Охват и читатели222K
Qt дает возможность создания платформо-независимых приложений для работы с базами данных, используя стандартные СУБД. Qt включает «родные» драйвера для Oracle, Microsoft SQL Server, Sybase Adaptive Server, IBM DB2, PostgreSQL, MySQL и ODBC-совместимых баз данных. Qt включает специфичные для баз данных виджеты, а также поддерживает расширение для работы с базами данных любых встроенных или отдельно написанных виджетов.
Читать дальше →

Граббер для одного книжного сайта

Время на прочтение4 мин
Охват и читатели29K

В один прекрасный день я решил написать grabber для книжного сайта и теперь хочу поделиться с вами тонкостями реализации такого рода программных решений. Вся информация представлена исключительно для ознакомительных целей

Читать дальше →

Многопоточный SOCKS 4 сервер на Qt

Время на прочтение5 мин
Охват и читатели30K
Время от времени на форумах рунета в ветке Qt появляются вопросы связанные с программированием сетевых приложений. Одна из проблем которая терзает этих людей, — это подход к организации сервера. Обычно перечисляют три подхода:
  • однопоточный асинхронный;
  • многопоточный, создавать по потоку на соединение;
  • многопоточный, с пулом потоков на QThreadPool и QRunnable.

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

Выпуск фреймворка Qt 5.5

Время на прочтение2 мин
Охват и читатели30K
Вчера, после шести месяцев разработки, вышла версия 5.5 кроссплатформенного фреймворка Qt.

Qt позволяет разрабатывать приложения при помощи C++ и декларативного языка программирования QML, поддерживает все основные десктопные и мобильные платформы, а также некоторые встраиваемые и имеет открытый исходный код. Существует коммерческая версия Qt, содержащая дополнительные проприетарные модули.

По сравнению с предыдущей версией, в 5.5 было внесено около 1500 исправлений и добавлен новый функционал. За подробностями прошу под кат.


Читать дальше →

Кросс-компиляция Qt5 под Linux для Win x32/x64/static/shared

Время на прочтение14 мин
Охват и читатели39K

Цель статьи


Документирование получения системы кросс-компиляции под Linux для Windows x32/x64/static/shared и сборка последней на момент описания Qt 5.4.1 в лайт-версии (для указанных четырех целей). Для себя, глубоко-обожаемого, ну и для пользы обществу.

Назначение


Многие разработчики приходят к выводу, что использование *nix (в частности Linux) более предпочтительно для разработки приложений, используя фрэймворк Qt. И тому есть причины. Qt изначально ориентирована на *nix инструментарий, типа autotool, make, perl… И второй момент, под никсами есть прекрасный инструмент — valgrind, под виндой порта пока его не видел. Ну и последняя причина: просто удобно иметь набор инструментария для создания приложений под различные целевые платформы — в одном месте.

Почему лайт-версия Qt5


Фрэймворк-Qt имеет модульную структуру, но, увы, не совсем совершенную. Некоторые зависимости от внешних библиотек «вешаются» не на модуль, требующий эти библиотеки, а на Qt5Core. Иными словами, нужна вам эта библиотека, или нет — вынь да положЪ в дистрибутив. Пример тому «монстрик» — библиотека ICU. Весит она почти 25 метров! Зависимость вешается, как я упоминал выше, на Qt5Core… а требует ее модуль Qt5WebKit (который по сути в 99% случаев не используется, по крайней мере мной). Что делаем? Вырезаем и отрезаем. Хотите получить фулл-версию Qt5? Об этом упомяну в заключении. Поехали.
Читать дальше →

Qt 5.3: низкий старт в мобильной кроссплатформе

Время на прочтение37 мин
Охват и читатели40K
Приветствую всех, кому интересна кроссплатформенная разработка для мобильных устройств! До недавнего времени относился с огромным скепсисом к инструментариям, позволяющим создавать ненативные приложения, которые работали бы сразу на ряде платформ. Однако в один момент любопытство и желание попробовать что-то новое всё же перевесили сдерживающий рассудок. Выбор пал на Qt 5.3. Почему? Потому что Qt открыт и бесплатен для некоммерческого и коммерческого (под лицензией LGPL) использования, имеет продолжительную историю (вышел в свет в 1996 году) и достаточное количество качественных проектов (навскидку — Skype, приложения 2ГИС), реализованных с использованием данных библиотек.

Цель публикации — познакомить читателей с мобильной разработкой на последней версии Qt: показать реализацию основных элементов клиент-серверных приложений и осветить возможные «подводные камни» при работе с библиотеками Qt.
Требуемый уровень подготовки и опыта — минимальный (знание основ C++, элементарное умение конфигурации локального сервера).
Материал для удобства восприятия разбит на 4 части: «Подводные камни», История одного проекта и работа над ошибками, Основы клиент-серверной разработки, Резюме.

Читать дальше →

Управление графическим интерфейсом с помощью echo и cat

Время на прочтение5 мин
Охват и читатели15K
Или независимые управляемые формы графического интерфейса.

Читать дальше →

2ГИС для Blackberry 10

Время на прочтение5 мин
Охват и читатели9.7K
2ГИС всегда стремится удовлетворять запросы пользователей, стараясь присутствовать на всех ключевых платформах. Особенно, если речь идёт о странах, в которые мы в дальнейшем планируем выходить.

12 ноября число платформ, на которых есть 2ГИС, пополнился ещё одной — Blackberry 10.


В связи с этим знаменательным событием, хочется поделиться некоторыми моментами, связанными с опытом портирования.
Читать дальше →

Qt + OpenCV. Runtime и Widget для CvCapture (устройства видеозахвата)

Время на прочтение14 мин
Охват и читатели23K

Введение.


Анализируя замечания предыдущего поста (Qt Designer & Runtime Qt библиотеки на службе OpenCV...), пришлось более детально проработать устройство видеозахвата библиотеки OpenCV и методы разделения библиотек runtime и виджетов.
Работа с Qt Designer удобна (я — лентяй), поэтому и возник компонент проектирования интерфейса для CvCapture. После начала работы подтянулось и «научное » тому объяснение — удобно применить нечто похожее, скажем, при проектировании интерфейса свойств или параметров приложения, использующего устройство видеозахвата.
Пока идёт скачивание архива проекта, читайте далее.

Благодарности.


Спасибо всем, кто оставил свои замечания по предыдущему посту.

Библиотека времени выполнения.


Итак, библиотека OpenCV установлена, примеры кода просмотрены. Самое время «прикрутить» устройство видеозахвата к Qt. Да не просто так, а чтобы и изображения получать, меняя устройства динамически. Да, чтобы помнило все пути к изображению, видео. Да, чтобы и номера камер переключало. Да, чтобы и… пост покороче получился.
Библиотека.

Чего проще! Наследуем новый класс библиотеки от QObject, прячем ненужные разработчику поля и методы в приватный класс как элемент коллекции QScopedPointer, монтируем сигналы оповещения и слоты-обработчики.
Читать дальше →

Ближайшие события

Релиз Qt SDK 1.1

Время на прочтение2 мин
Охват и читатели1.9K
Сегодня мы объявляем о выпуске Qt SDK 1.1. Это был длинный путь к релизу, который многие из вас ждали. Если не вдаваться в подробности, вот ссылки для скачивания:
Читать дальше →

Qt Mobility 1.1.1, QtCreator 2.1.0, Qt 4.7.2

Время на прочтение1 мин
Охват и читатели1.7K
Вышло очередное обновление инстурментария Qt за номером 4.7.2. Кроме исправления ошибок, оно является официальным релизом Qt Quick.

Одновременно вышло обновление для QtCreator (версия 2.1.0) с расширенной поддержкой Qt Quick и разработки для мобильных приложений.

QtMobility 1.1.1 включает множество исправлений ошибок и улучшенные привязки для QML и производительность, в особенности для Symbian.
Qt Mobility 1.1.1 так же входит в состав Qt SDK 1.1 Beta.

Собираем установочные пакеты из Qt проектов по-взрослому

Время на прочтение21 мин
Охват и читатели23K
Методом проб и ошибок я изобрел очередной велосипед, о котором и собираюсь рассказать Вам ниже.Речь пойдет о сборке пакетов из проектов Qt для Debian и Rpm based систем, Windows из под Ubuntu/Debian. В принципе метод весьма прост, поэтому, думаю, что при небольших изменениях он подойдет и для rpb based дистрибтивов, а для Windows систем потребуется установка cygwin.Кроме того эта тема очень мало обсуждается в интернете, хотя я бы не назвал сборку кроссплатформенных приложений в инсталяционные пакеты простой задачей.Кому будет интересен данный материал:
  • в первую очередь начинающим разработчикам Qt, которые хотят распространять свои приложения в удобном для пользователей виде;
  • разработчикам, использующих другие языки программирования (при небольших изменениях можно получить.
У меня есть уверенность в том, что все действия, описанные ниже, можно было бы сделать скриптом make, но и текущий вариант тоже неплох и имеет право на существование.Также, если Вы используете любой другой способ для автоматической сборки проектов, опишите его пожалуйста. Хотелось бы собрать в итоге как можно больше информации по этой теме.
Читать дальше →

QML — новый подход к построению GUI

Время на прочтение3 мин
Охват и читатели12K
Традиционно все десктопные приложения пишутся на императивных языках программирования, этот подход прост и понятен, куда проще описать последовательность действий для решения той или иной задачи, нежели поставить задачу в понятной для машины форме, но когда речь заходит о проектировании внешнего вида и поведения, возникают сложности.
Веб дизайнеры же привыкли описывать, как должно выглядеть веб приложение, то есть ставить задачу, а не по пунктам описывать её решение, такой подход называется декларативным, он удобен, но к сожалению в традиционных приложениях до сих пор господствует именно императивный подход. Есть конечно дизайнеры форм, но они лишь позволяют в общих чертах обрисовать внешний вид приложения, но совершенно не способны описать его поведение. Для решения это проблемы в Qt Software был предложен новый проект Declarative User Interface и в рамках него новый язык разметки:

Встречаем QML


Это новый язык разметки, позволяющий описывать не только внешний вид, но и поведение ваших приложений. Он очень прост и обладает json образным синтаксисом, немного сближающим его html5, что думаю очень придется по душе веб-дизайнерам, да и программистам тоже. А в перспективе это наконец позволит полностью разделить внутреннюю логику работы приложения и его внешнее поведение, в результате чего будет наконец решена извечная проблема, когда программист занимается ещё и внешним видом приложения, потому, как дизайнерам слишком сложно было вникнуть в программирование.
Хотите прикоснуться?

Хакнуть Qt: как мы запускали Picture-in-Picture в навигаторе 2ГИС

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели3.7K

Привет! Я Егор Ерусланов, Qt-разработчик.

В Android-приложение 2ГИС мы добавили новый режим PiP (Picture-in-Picture, или «картинка в картинке»). С PiP наши пользователи смогут следить за маршрутом в маленьком плавающем окне на основном экране. Например, когда нужно быстро прочитать сообщение или включить подкаст и при этом сохранять фокус на навигации. Режим PiP — это не просто «приятная мелочь», а функциональность, которая подстраивается под новые требования пользователей навигатора. 

В этом посте поделюсь, как решал несколько трудностей, которые встретились при разработке этой функции.

Читать далее

VLC 3.0 Vetinari

Время на прочтение4 мин
Охват и читатели21K

Неплохо начался и продолжается год для Linux в качестве рабочей станции. Вслед за третьим Wine, настало очередь популярнейшего медиаплеера VLC. После длительного и напряженного цикла разработки VideoLAN анонсировала выпуск видеоплеера с открытым исходным кодом VLC 3.0.0 озаглавленного Vetinari. Новая версия доступна для платформ Linux, *BSD, Mac, IOS, Windows и Android. В новой версии появилось множество современных возможностей: поддержка iPhone X, звука 3D, HDR видео, а также проигрывание видео с оборотом 360 градусов.


VLC X-Box


Среди самых заметных новшеств следует назвать поддержу видео высокой четкости 4k / 8k, видео 10-бит, проброс HD аудио кодеков, меню BD-J BluRay Java, поддержка NAS устройств, Google Chromecast и FTP, SFTP, SMB подключений.

Читать дальше →

Развёртывание приложений Qt в Windows

Время на прочтение6 мин
Охват и читатели108K

Вступление


Добрый день, уважаемые читатели! Совсем недавно я завершил разработку одного своего приложения на Qt, и мне захотелось создать профессиональную программу установки, чтобы всё было «как у взрослых». Как оказалось, сделать это непросто, учитывая, что на официальном сайте инструментария информации по развёртыванию почти нет. В данной статье рассмотрены некоторые этапы подготовки программ на Qt версии 5.2 или выше для распространения на компьютеры других пользователей. Итак, вот план руководства:

  1. Подготовка проекта Qt к развёртыванию
  2. Компоновка дистрибутива программы
  3. Подписание кода и создание установщика

Не будем терять времени и приступим к работе.
Читать дальше →

Вклад авторов