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

      Сегодня, спустя 7 месяцев с момента предыдущего значительного выпуска, вышла версия 5.8 кроссплатформенного фреймворка Qt.


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


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


      Читать дальше →
    • Выпуск фреймворка Qt 5.7

        Вчера, спустя всего 3 месяца с момента предыдущего значительного выпуска, вышла версия 5.7 кроссплатформенного фреймворка Qt.


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


        Новый выпуск принес смену лицензии, открытие кода проприетарных модулей, переход на C++11, стабилизация некоторых экспериментальных модулей, а также новые экспериментальные модули и удаление устаревших.



        Читать дальше →
      • В GOG.com появилась возможность бесплатно перенести игры из Steam

          На днях в сервисе цифровой дистрибуции компьютерных игр и фильмов без DRM GOG.com появилась возможность перенести игры, купленные в Steam в библиотеку GOG.com. После добавления игры не пропадают из Steam, а становятся доступны сразу в двух библиотеках.
          Читать дальше →
        • Model-View в QML. Часть четвертая: C++-модели

            Поскольку основное предназначение QML — это создание интерфейсов, то в соответствии с шаблоном MVC, на нем реализуются представление и контроль. Для реализации же модели, совершенно логично напрашивается C++. Здесь у нас будет гораздо меньше ограничений и мы сможем реализовать модель любой сложности. Кроме того, если значительная часть программы написана на C++ и данные поступают именно оттуда, то лучше всего там же поместить и модель.


            От использования такой модели может отпугнуть кажущаяся сложность реализации. Я не стану спорить с тем, что C++ не самый простой язык. Он посложнее QML и требует больше осторожности, чтобы не выстрелить себе в ногу, это факт. Несмотря на это, на практике не все так уж и страшно.


            Во-первых, не будем забывать, что мы пишем не на чистом С++, а с использованием Qt. Такие вещи как parent-child в QObject, implicit sharing для контейнеров, сигналы и слоты, QVariant и многое другое очень сильно упрощают и автоматизируют работу с памятью, чем избавляют разработчика от массы головной боли и повышают надежность. Иногда даже создается впечатление, что пишешь на динамическом языке программирования. Это же сокращает пропасть между QML и C++, делая переход между ними более-менее плавным.


            Во-вторых, все модели QML в конечном итоге приводятся к этим самым C++-моделям, только мы получаем упрощенный вариант и не самое максимальное быстродействие. Если уже есть понимание, как работать с моделями на QML, то с C++-моделями будет справиться проще. Мы просто узнаем в процессе чуть больше низкоуровневой информации, заодно улучшится понимание, как все это работает.


            В общем, освоить C++-модели очень даже стоит. В особенности это касается QAbstractItemModel, с которой мы и начнем.


            Model-View в QML:


            Читать дальше →
            • +13
            • 42.9k
            • 5
          • Распределенная программа для учета времени

              Сегодня мы поговорим об учете самого важного, на мой взгляд, ресурса — времени. Почему я считаю его самым важным? Потому, что он невосполнимый: его есть определённое количество и нового не будет. Можно только постараться максимально разумно распорядиться доступным. И куда же в этом деле без грамотного учёта? Я бы сказал, что учёт является базой для таких вещей, как тайм-менеджмент и планирование, т.к. без понимания, как расходуется время, крайне непросто его распределять и вообще что-то планировать. Да и просто полезно осознавать, на что и в каких количествах мы тратим драгоценное время нашей жизни.


              Для решения этой задачи я предлагаю достаточно простой инструмент. Заинтересовавшимся добро пожаловать под кат.


              Подробнее про инструмент
            • Выпуск фреймворка Qt 5.6

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

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

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


                Читать дальше →
              • Проект Qt меняет лицензию и открывает код некоторых модулей

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

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

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


                  Читать дальше →
                • Выпуск фреймворка Qt 5.5

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

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

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


                    Читать дальше →
                  • Выпуск дистрибутива Mageia 5



                      Mageia — это некоммерческий дистрибутив Linux, развиваемый одноименным сообществом. Был основан в 2010 году бывшими разработчиками Mandriva как форк и имеет много общего со своим предком.

                      Основное рабочее окружение — KDE. Есть версия с GNOME, а также в репозиториях и на DVD присутствуют его форки — Mate и Cinnamon. Есть свой графический конфигуратор, позволяющий настроить систему без необходимости лезть в консоль.

                      Новые версии дистрибутива выходят примерно раз в 9 месяцев. Для тех, кому нужен rolling-release — есть разрабатываемая ветка Cauldron, которая постоянно обновляется новыми версиями программ.

                      19 июня вышла пятая версия Mageia. Давайте посмотрим, чем разработчики могут нас порадовать в этот раз.
                      Читать дальше →
                    • Mageia 4



                        Mageia — это дистрибутив Linux, основанный в 2010 году бывшими сотрудниками компании Mandriva. Дистрибутив был создан как форк Mandriva и имеет много общего со своим предком. В отличии от Mandriva, это некоммерческий дистрибутив и развивается сообществом.

                        Основное рабочее окружение — KDE. Есть версия с GNOME, а также в репозитариях и на DVD присутвуют его форки — Mate и Cinnamon. Есть свой графический конфигуратор, позволяющий настроить систему без необходимости лезть в консоль.

                        Новые версии дистрибутива выходят примерно раз в 9 месяцев. Для тех, кому нужет rolling-release — есть разрабатываемая ветка Cauldron, которая постоянно обновляется новыми версиями программ.

                        Сегодня вышла четвертая версия Mageia.
                        Читать дальше →
                      • Model-View в QML. Часть третья: Модели в QML и JavaScript

                          Модель у нас отвечает за доступ к данным. Модель может быть реализована как в самом QML, так и на C++. Выбор тут больше всего зависит от того, где находится источник данных. Если в качестве источника данных используется код на C++, то там удобнее сделать и модель. Если же данные поступают напрямую в QML (например получаются из сети при помощи XMLHttpRequest), то лучше и модель реализовать на QML. Иначе придется передавать данные в C++, чтобы затем обратно их получать для отображения, что только усложнит код.

                          По тому, как модели реализуются, я разделю их на три категории:
                          • модели на C++;
                          • модели на QML;
                          • модели на JavaScript.

                          JavaScript-модели я вынес в отдельную категорию, т.к. у них есть определенные особенности, про них я расскажу чуть позже.
                          Начнем рассмотрение с моделей, реализованных средствами QML.

                          Model-View в QML:
                          1. Model-View в QML. Часть нулевая, вводная
                          2. Model-View в QML. Часть первая: Представления на основе готовых компонентов
                          3. Model-View в QML. Часть вторая: Кастомные представления
                          4. Model-View в QML. Часть третья: Модели в QML и JavaScript
                          5. Model-View в QML. Часть четвертая: C++-модели

                          Читать дальше →
                          • +18
                          • 42.4k
                          • 3
                        • Игры серии X в распродаже Humble Weekly Sale

                            Комания Humble Bundle продолжает радовать нас хорошими распродажами. В добавок к запущенной неделю назад девятой акции Humble Indie Bundle, сегодня стартовала распродажа игрушек серии X.

                            Под катом подробности, а также небольшой ликбез, для тех, кто уже запутался в этих акциях.


                            Читать дальше →
                          • Model-View в QML. Часть вторая: Кастомные представления

                              Не всегда готовые представления идеально подходят. Рассмотрим компоненты, которые позволяют создать полностью кастомизированное представление и добиться большой гибкости в построении интерфейса. И еще от меня небольшой бонус для терпеливых читателей :)

                              Model-View в QML:
                              1. Model-View в QML. Часть нулевая, вводная
                              2. Model-View в QML. Часть первая: Представления на основе готовых компонентов
                              3. Model-View в QML. Часть вторая: Кастомные представления
                              4. Model-View в QML. Часть третья: Модели в QML и JavaScript
                              5. Model-View в QML. Часть четвертая: C++-модели

                              Читать дальше →
                              • +15
                              • 27.8k
                              • 4
                            • Model-View в QML. Часть первая: Представления на основе готовых компонентов

                                В этой части моего цикла статей про Model-View в QML мы начнем рассматривать представления и начнем с тех, которые делаются на основе готовых компонентов.

                                Model-View в QML:
                                1. Model-View в QML. Часть нулевая, вводная
                                2. Model-View в QML. Часть первая: Представления на основе готовых компонентов
                                3. Model-View в QML. Часть вторая: Кастомные представления
                                4. Model-View в QML. Часть третья: Модели в QML и JavaScript
                                5. Model-View в QML. Часть четвертая: C++-модели

                                Читать дальше →
                              • В Humble Indie Bundle 8 добавили новых игр

                                  Очередная распродажа Humble Indie Bundle, спустя некоторое время после начала, традиционно пополнилась новыми играми. Причем одна из них не такая уж и инди, любители хорошей графики оценят. Для тех, кому интересно — добро пожаловать под кат ;)


                                  Читать дальше →
                                • Model-View в QML. Часть нулевая, вводная

                                    Одним из наиболее распространенных и эффективных приемов проектирования программ является использование шаблона программирования MVC (Model-View-Controller) — Модель-Представление-Контроль. MVC позволяет разделить части программы, отвечающие за хранение и доступ к данным, отображение данных и за взаимодействие с пользователем на отдельные слабо связанные модули. Подобное разделение ответственности упрощает структуру программы и позволяет вносить изменения в одну из этих частей не затрагивая остальные.

                                    Такой подход активно применяется в Qt, а в QML вообще является краеугольным камнем. Так что тем, кто изучает QML понимание принципов MVC будет совсем не лишним.

                                    Model-View в QML:
                                    1. Model-View в QML. Часть нулевая, вводная
                                    2. Model-View в QML. Часть первая: Представления на основе готовых компонентов
                                    3. Model-View в QML. Часть вторая: Кастомные представления
                                    4. Model-View в QML. Часть третья: Модели в QML и JavaScript
                                    5. Model-View в QML. Часть четвертая: C++-модели

                                    Читать дальше →
                                    • +18
                                    • 63.3k
                                    • 3
                                  • Вышла Mageia 3



                                      Mageia — это дистрибутив Linux, основанный в 2010 году бывшими сотрудниками компании Mandriva. Дистрибутив был создан как форк Mandriva и имеет много общего со своим предком. В отличии от Mandriva, это некоммерческий дистрибутив и развивается сообществом. Дистрибутив находится на втором месте по популярности на сайте distrowatch.com.

                                      Основное рабочее окружение — KDE, но есть версии и с GNOME. Есть свой графический конфигуратор, позволяющий настроить систему без необходимости лезть в консоль. Для любителей поиграться тоже кое-что есть.

                                      Новые версии дистрибутива выходят примерно раз в 9 месяцев. Для тех, кому нужет rolling-release — есть разрабатываемая ветка Cauldron, которая постоянно обновляется новыми версиями программ.

                                      Сегодня вышла третья версия этого дистрибутива. Выпуск посвящается памяти Евгения Додонова.
                                      Читать дальше →
                                    • Интеграция приложения на QML с веб-ресурсами

                                      • Tutorial
                                      Здравствуй, дорогой хабражитель! Я хочу рассказать, как интегрировать программу на новомодном языке QML с веб-ресурсами.

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

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

                                      Учитывая, что в Qt 5.1, альфа версия которой вышла на прошлой неделе, включена начальная поддержка Android и iOS, эта тема может быть особенно интересна тем, кто присматривается к Qt или активно ее осваивает. В этой статье я расскажу, как можно организовать работу с веб-ресурсами из приложения на QML на примере API ВКонтакте.

                                      На всякий случай отмечу, что я рассматриваю последнюю стабильную версию Qt 5.0.2. В более ранних версиях каких-то возможностей может не быть.
                                      Читать дальше →
                                    • Использование Loader в QML

                                      Добрый день! В этой статье я расскажу про такой компонент из QML как Loader.

                                      Он позволяет создать контейнер, в который затем можно вложить необходимый qml-элемент, использовать разные элементы в зависимости от состояния программы, а также сделать редко используемые части загружаемыми по требованию и сэкономить ресурсы. Loader является контейнером для QML-компонента и сам по себе не отображается.

                                      Я рассматриваю компонент из QtQuick 2.0 которая входит в Qt пятой версии. В более ранней версии этот компонент также есть, но функционал немного меньше.

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