• Qt для мобильной кросс-платформенной разработки

    • Перевод
    Хотелось бы представить размышления Ekke Gentz по применению Qt 5.6 в кросс-платформенной мобильной разработке. Также можно будет посмотреть видео с выступлением Ekke на MobileTechCon (на английском). Ниже идёт перевод заметки.

    Возможно вы знаете, что моя основная деятельность это разработка бизнес приложений для BlackBerry 10. Но так как BlackBerry PRIV работает под управлением Android 5.1.1 (и ожидается 6.0), то пользователи просили меня выпустить кросс-платформенные приложения, работающие под BlackBerry 10, Android и iOS (а позже и Windows 10). Я не любитель веб- или гибридных приложений и предпочитаю разработку нативных программ. С другой стороны я не очень то хочу разрабатывать приложения для всех платформ нативным, но различным способом при помощи разных языков программирования, сред разработки и т.д.
    Читать дальше →
  • Выпуск фреймворка Qt 5.6

      На прошлой неделе, после девяти месяцев разработки, вышла версия 5.6 кроссплатформенного фреймворка Qt.

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

      Новый выпуск принес длительный срок поддержки, новые экспериментальные модули (и удаление устаревших), поддержку новых платформ, а также новый тарифный план для стартапов в коммерческой версии Qt.


      Читать дальше →
    • Новая ICQ для Windows, открытый код и кое-что еще



        В ноябре 2015 года мы вспоминали, как менялся интерфейс Аськи. Сегодня мы выпустили новую версию для Windows, внешность которой была полностью переработана. ICQ обрела минималистичный интерфейс и стала очень похожа на свою мобильную инкарнацию. А кроме того — тадам! — мы открыли исходный код приложения, потому что использовали для создания новой версии кроссплатформенный инструментарий Qt.
        Читать дальше →
      • Костылик для сигнал-слот системы в Qt



          Привет всем. Я хочу рассказать вот о чём… Недели две назад впервые понадобилось работать с GUI под С++ и, погуглив малость, я решил использовать Qt. Его все жутко хвалили, да и вообще на первый взгляд выглядел он весьма достойно.

          На второй взгляд Qt оказался тоже годной штукой, но из-за некоторых ограничений реализации его мето-объектного компилятора пришлось-таки конструировать небольшие костылики. В данном очерке (думаю, слово «очерк» подойдёт лучше, ибо по объёму это на статью не тянет) хочу рассказать о том, как я решал возникающие проблемы.

          Добавлено: На основе комментариев добрых людей была сделана правка, повествующая о том, как можно обойтись без MOC и без костыликов вообще.

          Читать дальше →
        • Тест-тренировка зрительного внимания

            Если я напишу 2, потом 4, потом 6, тогда мы почувствуем себя хорошо, потому что мы знаем, что дальше идет 8. Мы можем это предвидеть, мы не в руках судьбы. Однако, к сожалению, это не имеет ничего общего с истиной...
            х/ф «Оксфордские убийства»


            Задача: обнаружить центральную фигуру среди сереньких фигур вокруг.

            Данный проект — PsyMatchArea — задумывался в качестве альтернативы знаменитым таблицам Шульте. С теми же целями (тренировка зрительного периферического внимания), но с другими, более «отмороженными» исходными предпосылками. Во-первых, нужно было уйти от цифр и букв — символов, знакомых каждому практически с яслей и потому распознаваемых на автомате без активного вовлечения сознания в процесс. Во-вторых, чтобы внимание как можно меньше подменялось памятью (и вообще не расслаблялось), надо было обеспечить соответствующие «помехи» — смена позиций, мерцания, наложения и т.п.
            Читать дальше →
          • Профилирование запросов к SQLite для Qt приложений

              Имеется типична ситуация:

              • кем-то написанное приложение на Qt;
              • пользователи жалуются, что программа во время работы жрем много CPU;
              • профилировщик и strace указывают на то, что происходит насилование базы.

              В такой ситуации хочется посмотреть что за запросы, их количество, время выполнения. Если в PostgreSQL есть pg_stat_statements и pgBadger, то для SQLite пришлось написать свой самокат. Самокат представляет из себя вызов sqlite3_profile для каждого соединения, запись полученной информации в журнал.

              Читать дальше →
              • +11
              • 5,5k
              • 5
            • Создание 2D тайловой карты на QML. Часть 1

              • Tutorial


              Первая мысль, которая меня посетила: «а что, собственно, в этом сложного?».
              Ну, вроде, ничего:
              • создаешь массив текстур,
              • указываешь размер карты,
              • пробегаешься циклом по массиву, создавая объекты.
              Именно так я и поступил с самого начала…
              Читать дальше →
              • +14
              • 12,9k
              • 8
            • Подземелья Qt: Рецепты приготовления монстров (Часть 1. Редактирование разнородных данных)

              image

              Всякому профессиональному разработчику приложений, использующему Qt, довольно часто приходится использовать связку model/delegate/view для различных манипуляций с данными. Основные детали этого шаблона хорошо описаны в стандартном руководстве на эту тему, однако, часто приходится сталкиваться с ситуацией, когда стандартное поведение необходимо расширить или дополнить под конкретные нужды. Обычно, тут и начинается то, за что мы все любим программирование — поездка на любимых самокатах и рикшах — придумывается собственное решение. Именно в этот момент внутренний голос должен бы нас остановить, но мы ловко парируем: «Я уже смотрел, документации много — читать долго, сроки поджимают и еще масса других дел. А главное, не ясно откуда начинать искать». Именно поэтому, любой уважающий себя разработчик должен иметь под рукой собственноручно собранные и опробованные рецепты и стараться пополнять свою коллекцию.
              Читать дальше →
            • Проект Qt меняет лицензию и открывает код некоторых модулей

                На прошлой неделе компания Qt Company (подразделение Digia) обновила текст соглашения с организацией KDE Free Qt Foundation и объявила о новой политике лицензирования Qt.

                Организация KDE Free Qt Foundation была основана в 1998 г. с целью защиты Qt как свободного ПО. Между организацией и компанией Trolltech был заключен договор, позволяющий в случае прекращения разработки свободной версии Qt, выпустить Qt под лицензией типа BSD (или любой другой свободной). Договор обновлялся, по мере того, как права на Qt переходили к Nokia, а затем к Digia.

                Подробности новой лицензионной политики Qt под катом.


                Читать дальше →
              • Автоматический контроль времени жизни общих C++-QML объектов

                Речь пойдет об объектах, используемых в C++ и QML одновременно, верхушкой иерархии наследования которых является QObject. Насколько мне известно, реализации механизма автоматического контроля времени жизни таких объектов на уровне библиотеки не существует. Подобный механизм избавил бы от сложностей, возникающих при ручном контроле времени жизни объектов, а так же от потенциальных багов, утечек памяти и крешей приложения. В этой статье я опишу этапы реализации данного механизма, а так же проблемы, рассмотренные в процессе исследования данной проблемы.
                Читать дальше →
              Самое читаемое