Qt (произносится [ˈkjuːt] (кьют) как «cute» или неофициально Q-T (кью-ти)) — кроссплатформенный инструментарий разработки ПО на языке программирования C++.

Основная информация

Qt (произносится [ˈkjuːt] (кьют) как «cute» или неофициально Q-T (кью-ти)) — кроссплатформенный инструментарий разработки ПО на языке программирования C++.

Есть также «привязки» ко многим другим языкам программирования: Python — PyQt, PySide; Ruby — QtRuby; Java — Qt Jambi; PHP — PHP-Qt и другие.

Со времени своего появления в 1996 году библиотека Qt легла в основу тысяч успешных проектов во всём мире. Кроме того, Qt является фундаментом популярной рабочей среды KDE, входящей в состав многих дистрибутивов Linux.

Рейтинг: 0
Создана 6 лет назад
Владелец root

Стена группы

Загрузка...
6 лет назад
#
Разработка для SailfishOS: стилизация приложения

Здравствуйте! Данная статья продолжает цикл статей посвящённых разработке приложений под Sailfish. В прошлых статьях я описал как начать разрабатывать под мобильную платформу Sailfish OS и рассказал об основах разработки под данную платформу. В этой же статье я расскажу о том, как сделать так, чтобы ваше приложение, с точки зрения стиля и размеров, выглядело как стандартное приложение для платформы SailfishOS.

Для достижения вышеобозначенной цели в составе Sailfish Silica присутствует компонент Theme. Данный компонент предоставляет информацию о стандартных размерах, шрифтах, отступах, цветах и других составляющих стиля для приложений на платформе SailfishOS. Другими словами, компонент Theme помогает добиться того, что графический интерфейс приложения выглядит стандартно для платформы. Рассмотрим некоторые свойства данного компонента подробнее.

Шрифты

В приложениях под SailfishOS стандартно используются два семейства шрифтов: одно для различных заголовков и одно для всех остальных надписей. Узнать нужное семейство шрифтов можно с помощью свойств fontFamilyHeading и fontFamily компонента Theme.

Так же Theme позволяет узнать семь стандартных размеров шрифтов:
  • Theme.fontSizeHuge — самый большой рекомендованный размер шрифта. Можно использовать, например, для очень больших заголовков или компонентов, в которых текст играет определяющую роль (например, цифровая клавиатура телефона).

  • Theme.fontSizeExtraLarge — чуть меньший размер шрифта. Можно использовать, например, для заголовков поменьше.

  • Theme.fontSizeLarge — обычный большой размер шрифта. Можно использовать, например, для стандартных заголовков. Такой размер используется для заголовков страниц в компоненте PageHeader.

  • Theme.fontSizeMedium — стандартный средний размер шрифта. Используется в большинстве случаев. Такой размер используется в большинстве элементов управления, где есть текст.

  • Theme.fontSizeSmall — маленький размер шрифта. Используется для второстепенного текста, либо больших параграфов.

  • Theme.fontSizeExtraSmall — меньший размер шрифта. Так же используется для второстепенного текста, но более мелкого. Например, такой размер используется в подписях к компоненту TextSwitch, который реализует элемент-переключатель (toggle button).

  • Theme.fontSizeTiny — самый маленький рекомендованный размер шрифта. Такой размер используется для отображения второстепенного текста в случаях, когда место под него строго ограничено.


Таким образом, пример отображающий два текстовых блока с помощью стандартного QML компонента Text, где первый блок выполняет роль заголовка, а второй обычного текста, будет выглядеть следующим образом:

Text {
  text: "Заголовок"
  font.family: Theme.fontFamilyHeading
  font.pixelSize: Theme.fontSizeLarge
}
Text {
  text: "Обычный текст"
  font.family: Theme.fontFamily
  font.pixelSize: Theme.fontSizeMedium
}

Подробнее
6 лет назад
#
GET и POST запросы в Qt 5.4.2 и Qt 5.7

Что-то я совсем забросил свой блог, пора наверстывать упущенное. Итак, ныне очень актуально писать мобильные и десктопные приложения, которые общаются с сервером с помощью HTTP запросов и есть довольно частая проблема с тем, как заставить их работать. Данный пример писался на Qt + node.js для backend. Версия Qt 5.4.2, но и на 5.7 код не должен отличаться.

Стандартная форма GET запроса имеет следующий вид:
www.site.ru/zapros?value1=data1&value2=data2
В данном запросе мы отправляет GET запрос на site.ru по ссылку zapros и передаем два параметра, value1 и value2. На Qt это будет выглядеть следующим образом:

QNetworkRequest request(QUrl("http://www.site.ru/zapros?value1=data1&value2=data2"));
    QNetworkAccessManager mngr = new QNetworkAccessManager(this);
    mngr->get(request);


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

void Communicator::sendData() {
    QNetworkRequest request(QUrl("http://www.site.ru/zapros?value1=data1&value2=data2"));
    QNetworkAccessManager *mngr = new QNetworkAccessManager(this);
    connect(this, mngr, SIGNAL(finished(QNetworkReply*)), SLOT(getResponse(QNetworkReply*)));
    mngr->get(request);
}
 
void Communicator::getResponse(QNetworkReply *reply)
{
    qDebug() << reply->readAll();
}

Подробнее
6 лет назад
#
Разработка для SailfishOS: основы

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

В состав SailfishOS SDK (работа с которым была описана в прошлой статье) входит Sailfish Silica — QML модуль, использующийся для создания Sailfish приложений. Данный модуль содержит QML компоненты, которые выглядят и управляются в соответствии со стандартами приложений для Sailfish. Помимо прочего, Sailfish Silica так же содержит инструменты для создания специфических элементов Sailfish приложений, таких как, например, Cover Page, которые были немного затронуты в прошлой статье. Для того, чтобы воспользоваться модулем Sailfish Silica и его инструментами и компонентами, необходимо просто импортировать данный модуль в QML файлы кода приложения. Это будет показано в примере чуть позже.

ApplicationWindow

QML основной любого Sailfish приложения является компонент ApplicationWindow, который описывает окно приложения и содержит пользовательский интерфейс приложения и вообще является основной и обязательной входной точкой загрузки Sailfish приложения. Экраны же приложения реализуются при помощи компонента Page. При этом ApplicationWindow содержит свойство initialPage, позволяющее установить начальный экран приложения. Таким образом минимальное приложение для платформы Sailfish будет выглядеть следующим образом:

import QtQuick 2.2
import Sailfish.Silica 1.0
 
ApplicationWindow {
    initialPage: Component {
        Page {
            Label {
                text: "Привет, Хабр!"
                anchors.centerIn: parent
            }
        }
    }
}

Подробнее
6 лет назад
#
Начало разработки для Sailfish OS

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

Для написания приложений для платформы Sailfish OS используется язык С++ и библиотеки Qt, а также язык QML для описания графического интерфейса приложений. Поэтому, если вы уже имеете опыт написания приложений с использованием Qt и QML, разработка для Sailfish OS не вызовет у вас затруднений. Кроме того, Sailfish OS позволяет разрабатывать нативные приложения на языке Python. Однако, данная тема выходит за рамки данной статьи и не будет в ней описана (подробнее про это можно почитать, например, тут).

Как и для других мобильных платформ, разработка для Sailfish OS ведется с использованием SDK, предоставляемого создателями платформы. SailfishOS SDK включает в себя:
  • QtCreator — IDE, в которой собственно и предлагается вести весь процесс разработки.

  • Mer Build Engine, который необходим для сборки приложений.

  • Эмулятор Sailfish OS.

  • Примеры, руководства и документация к API.


Mer Build Engine и эмулятор платформы поставляются в виде образов виртуальных машин для VirtualBox. Однако, сам VirtualBox в состав SailfishOS SDK не входит. Поэтому, перед непосредственной установкой SDK, необходимо вначале установить VirtualBox версии не ниже чем 4.1.18. Кроме того, при работе в Windows, перед установкой SDK так же необходимо установить пакет Windows Microsoft Visual C++ 2010 redistributable (x86).

Сам SailfishOS SDK доступен для Linux, Windows и Max OS X, его можно скачать тут. SDK поставляется в виде графического инсталлятора, поэтому установка SDK не вызывает никаких трудностей. Однако, при установке вас спросят альтернативный путь для проектов. Этот параметр необходим для того, чтобы виртуальная машина с Mer Build Engine имела доступ к исходным кодам вашего проекта. По умолчанию это ваша домашняя директория. В последствии данный параметр можно изменить в настройках Qt Creator.

Подробнее
6 лет назад
#
GPS трекер на Qt, карта и трек

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

  • экспортировать трек в GPX (GPS eXchange Format);

  • выводить трек на карту;

  • выводить время в пути, длину пути, среднюю скорость.


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

Plugin, PluginParameter и Map

Базовые типы находятся в модуле Qt Location. Qt Location в качестве бакенда может использовать:

Работа с конкретным поставщиком карт помещена в плагины(Plugin), которые настраиваются через параметры(PluginParameter).

Минимальный пример:

Plugin {
  id: plugin
  preferred: ["here", "osm"]
  required: Plugin.AnyMappingFeatures | Plugin.AnyGeocodingFeatures
}
 
Map {
    plugin: plugin
 
    width: ...
    height:...
 
}


Подробнее
1 2

Авторизация

Войдите, используя Ваш аккаунт

Войти с помощью

Пользователи

Именинники

Elvira
Skyeng
GeekBrains
Lingualeo