Как стать автором
Обновить
32
0
Никита Крупенько @BlackRaven86

Программист C++/Qt и QML

Отправить сообщение

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

Время на прочтение4 мин
Количество просмотров26K

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


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


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


Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии65

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

Время на прочтение4 мин
Количество просмотров33K

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


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


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



Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии44

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

Время на прочтение2 мин
Количество просмотров88K
На днях в сервисе цифровой дистрибуции компьютерных игр и фильмов без DRM GOG.com появилась возможность перенести игры, купленные в Steam в библиотеку GOG.com. После добавления игры не пропадают из Steam, а становятся доступны сразу в двух библиотеках.
Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии71

Model-View в QML. Часть четвертая: C++-модели

Время на прочтение13 мин
Количество просмотров62K

Поскольку основное предназначение 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: ↑13 и ↓0+13
Комментарии5

Распределенная программа для учета времени

Время на прочтение5 мин
Количество просмотров10K

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


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


Подробнее про инструмент
Всего голосов 15: ↑9 и ↓6+3
Комментарии22

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

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

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

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


Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии43

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

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

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

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


Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии19

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

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

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

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


Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии37

Выпуск дистрибутива Mageia 5

Время на прочтение3 мин
Количество просмотров10K


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

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

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

19 июня вышла пятая версия Mageia. Давайте посмотрим, чем разработчики могут нас порадовать в этот раз.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии12

Mageia 4

Время на прочтение2 мин
Количество просмотров32K


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

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

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

Сегодня вышла четвертая версия Mageia.
Читать дальше →
Всего голосов 35: ↑27 и ↓8+19
Комментарии47

Model-View в QML. Часть третья: Модели в QML и JavaScript

Время на прочтение14 мин
Количество просмотров51K
Модель у нас отвечает за доступ к данным. Модель может быть реализована как в самом 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: ↑18 и ↓0+18
Комментарии3

Игры серии X в распродаже Humble Weekly Sale

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

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


Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии23

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

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

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: ↑15 и ↓0+15
Комментарии4

Model-View в QML. Часть первая: Представления на основе готовых компонентов

Время на прочтение10 мин
Количество просмотров63K
В этой части моего цикла статей про 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: ↑15 и ↓0+15
Комментарии10

В Humble Indie Bundle 8 добавили новых игр

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


Читать дальше →
Всего голосов 25: ↑19 и ↓6+13
Комментарии12

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

Время на прочтение6 мин
Количество просмотров75K
Одним из наиболее распространенных и эффективных приемов проектирования программ является использование шаблона программирования 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: ↑18 и ↓0+18
Комментарии3

Вышла Mageia 3

Время на прочтение2 мин
Количество просмотров27K


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

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

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

Сегодня вышла третья версия этого дистрибутива. Выпуск посвящается памяти Евгения Додонова.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии23

Интеграция приложения на QML с веб-ресурсами

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

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

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

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

На всякий случай отмечу, что я рассматриваю последнюю стабильную версию Qt 5.0.2. В более ранних версиях каких-то возможностей может не быть.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии14

Использование Loader в QML

Время на прочтение6 мин
Количество просмотров37K
Добрый день! В этой статье я расскажу про такой компонент из QML как Loader.

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

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

Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии10

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность