Рубрика «qt5» - 2

Некоторые книги, по требованию правообладателя, доступны только для чтения с сайта или в приложениях ЛитРес. Все бы ничего, но бывают такие ситуации:
grab'им караваны ЛитРес в ознакомительных целях - 1

Право читать обошлось в 2/3 от стоимости бумажного носителя, если брать с сайта издательства.

Справедливости нет. есть только я

Смерть

И тут я решил написать grabber.

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

image

Несколько дней назад встал вопрос о написании консольного приложения, которое будет работать в Linux CentOS 7 и взаимодействовать с MS SQL Server 2012. Мне очень нравится Qt и я решил, что воспользуюсь им для решения этой задачи. И если под Windows я достаточно быстро настроил необходимое окружение, то под Linux я столкнулся с проблемами, которые очень тяжело было решить с помощью гуглинга. Этому вопросу я посвятил полтора дня. Считаю полезным поделиться своим опытом, возможно кому-то это поможет сэкономить драгоценное время.
Читать полностью »

Всем привет! Я работаю в компании Renga Software (совместное предприятие АСКОН и фирмы «1С»), которая занимается разработкой BIM-систем: Renga Architecture — для архитектурно-строительного проектирования и Renga Structure — для проектирования конструктивной части зданий и сооружений.

В этой статье хочу поделиться опытом интеграции 3D-мыши в систему Renga.
image
Читать полностью »

в 14:18, , рубрики: c++, c++11, qt, qt5

Введение

Последнее время я занимаюсь разработкой настольного Rest API клиента. Довольно большая часть работы во взаимодействие с сервером, для оптимизации обработки запросов был написан класс Requester, обладающий следующими особенностями:

  • возможность отправлять как https так и http запросы
  • использование одной функции для всех типов запросов
  • возможность получить все данные по запросу с сервера, а не одну страницу(n записей)

Программисту, использующему этот класс, придется работать тремя функциями:

    void initRequester(const QString& host, int port, QSslConfiguration *value);

    // функция посылает один запрос
    void sendRequest(const QString &apiStr,
                       const handleFunc &funcSuccess,
                       const handleFunc &funcError,
                       int type = Type::GET,
                       const QVariantMap &data = QVariantMap());

     //функция будет посылать GET запрос пока не будет достигнута последня старница
    void sendMulishGetRequest(
                       const QString &apiStr,
                       const handleFunc &funcSuccess,
                       const handleFunc &funcError,
                       const finishFunc &funcFinish);

funcSuccess — callback, вызываемый в случае, если запрос выполнился успешно
funcError — callback в случае ошибки

    typedef std::function<void(const QJsonObject &)> handleFunc;
    typedef std::function<void()> finishFunc;
    enum class Type {
        POST,
        GET,
        PATCH,
        DELET     
    };

DELET — не опечатка, так как с DELETE не собирается под WINDOWS.

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

Решил попрактиковаться в программирование под Android на Qt. В качестве темы выбрал GPS трекер.
Набор функций этого трекера:

  • снимать измерения с GPS приемника;
  • экспортировать трек в GPX (GPS eXchange Format);
  • выводить трек на карту;
  • выводить время в пути, длину пути, среднюю скорость.

Под катом будет приведен пример работы с картой в QtQuick.

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

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

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

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

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

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

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

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

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

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

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

Model-View в QML:

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

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

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

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

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

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

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

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

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

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

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

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


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