Команда (фрилансеры)

Набираем команду фрилансеров, Вы:

  • Программист,
  • Дизайнер,
  • SEO-специалист,
  • Менеджер

Разработка на заказ

Наша команда фрилансеров выполнит
работы на заказ:

Создание и раскрутка сайтов
Разработка приложений (мобайл, десктоп, сервер)
Разработка игр (веб, мобайл, 3D)
Аутсорсинг, фриланс

Контакты
vk.com/sitev_ru
Skype: sitev.ru
E-mail: mike@sitev.ru
github.com/sitev

Рейтинг@Mail.ru

Besucherzahler
счетчик посещений
Сайт на C++
Наш сайт работает на C++ и это очень круто! =))

Qt QML. Урок 2

Что такое QML? Это Qt Meta Language or Qt Modeling Language - декларативный язык программирования, основанный на JavaScript, предназначенный для дизайна приложений, делающих основной упор на пользовательский интерфейс.

Запускаем Qt Creator и создаём в нём Qt Quick приложение:

Указываем имя проекта и папку для размещения файлов, у меня: C:\projects\qt

Qt Creator автоматически генерирует несколько файлов.

Разбираемся с файлами Qt

Файл lesson2.pro - файл проекта, содержит необходимую информацию для того, чтобы qmake собрал наше приложение.

Файл main.cpp:

#include 
#include 

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    return app.exec();
}

При запуске программы мы создаём GUI-приложение (QGuiApplication), с помощью QQmlApplicationEngine загружаем приложение из файла main.qml и запускаем его: app.exec().

На этом код на C++ закончился, далее будет только QML!

Файл main.qml:

import QtQuick 2.6
import QtQuick.Window 2.2

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    MainForm {
        anchors.fill: parent
        mouseArea.onClicked: {
            console.log(qsTr('Clicked on background. Text: "' + textEdit.text + '"'))
        }
    }
}

Создаём окно размером 640х480 с заголовком "Hello World". Внутри окна создаёт элемент MainForm, задав для MainForm весь внутренний размер окна, а при нажатии мышкой на MainForm в консоль будет выводится сообщение "Clicked on background. Text: ...".

А проекте есть ещё файл MainForm.ui.qml. Файлы *.ui.qml появились в Qt относительно недавно, по идеологии Qt их рекомендуется редактировать в графическом дизайнере интерфейсов QML Puppet (хотя можно и в текстовом). В файлах *.ui.qml нельзя использовать JavaScript, только QML (видимо, намёк на разделение работы дизайнера и программиста).

Файл MainForm.ui.qml:

import QtQuick 2.6

Rectangle {
    property alias mouseArea: mouseArea
    property alias textEdit: textEdit

    width: 360
    height: 360

    MouseArea {
        id: mouseArea
        anchors.fill: parent
    }

    TextEdit {
        id: textEdit
        text: qsTr("Enter some text...")
        verticalAlignment: Text.AlignVCenter
        anchors.top: parent.top
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.topMargin: 20
        Rectangle {
            anchors.fill: parent
            anchors.margins: -10
            color: "transparent"
            border.width: 1
        }
    }
}

Что из себя представляет этот MainForm? Это прямоугольник Rectangle, в котором задаётся область обработки событий мышки MouseArea. Внутри формы вставляется поле ввода текста TextEdit, причём, его размеры рисуются отдельным, вставленным внутрь, прямоугольником Rectangle.

Идеология приложений Qt QML, видимо, следующая:

  • минимум C++ кода, если это возможно (в нашем main.cpp мы лишь создали приложение и запустили "движок" работы с QML),
  • файлы *.qml - это для программиста, файлы *.ui.qml - для дизайнера (как мы видим из нашего примера, в main.qml мы лишь создали окно и вставили в него некую главную форму, в а MainForm.ui.qml уже создаётся весь дизайн).

Этот урок лишь в общих чертах дал понимание, что такое Qt QML, но породил множество вопросов, на которые мы ответим в следующих уроках.


  • - 2017-11-16 02:32:24

Отправить комментарий
Наш проект: язык Cj
Cj - язык программирования (C++ & Javascript)
Новый язык программирования, для разработки веб, мобайл, десктоп-приложений, игр... подробнее...

Хотите поддержать проект?

  • Оставляйте ссылки на наш сайт
  • Станьте спонсором проекта
подробнее...

Концепция SITEV.ru

SITEV.ru - это социальная сеть для ИТ-специалистов (программистов, дизайнеров, seo-специалистов, рекламных менеджеров, маркетологов), в том числе фрилансеров, бизнесменов... а также обычных пользователей, для которых и делается ИТ

Реклама


Поиск работы по всему миру