Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Rectangle {
id: button //Имя кнопки
//Размещаем в центре
x: parent.width / 2 - button.width / 2;
y: parent.height / 2 - button.height / 2;Rectangle {
width: 200
height: 300
color: "Red"
Rectangle {
width: 50
height: 60
color: "Blue"
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
}
}Та сборка Qt Creator официальная, которую я ставил (2.3), по умолчанию почему-то десктопные части не устанавливала.
Мы добавили #include <QtDeclarative/QDeclarativeView>, #include и др, добавили namespace, добавили ключевое слово explicit, и главное добавили QDeclarativeView *ui.
А зачем мы все это добавили, а если не добавить слово explicit, работать не будет? А без namespace?
x: parent.width / 2 - button.width / 2; y: parent.height / 2 - button.height / 2;
Ох как сложно, а мне рассказывали, что в QML есть какие-то лайоуты c которыми так удобно элементы расставлять. Обманывали наверное.
Обратите внимание на ключевое слово Q_INVOKABLE.
Я открыл стандарт С++ и не нашел там такого ключевого слова, где вы его взяли, а без него нельзя обойтись?
Впрочем ладно пока хватит вопросов.
int value = emit someSignal();
Странно это, как они забыли в официальную сборку IDE(!) положить библиотеку и компилятор, совсем глупые наверное
Мы добавили #include <QtDeclarative/QDeclarativeView>, #include и др… А зачем мы все это добавили
, добавили namespaceЗдесь соглашусь с Вами. Можно обойтись и без этого.
главное добавили QDeclarativeView *ui.Ну без этого мы не подключим этим способом qml.
Обманывали наверное.Статья не ставила своей целью показать красивости и основные приемы QML. Для этого существуют множество статей. Интерфейс был не важен, а была поставлена четко задача, которая и решалась.
#include <iostream>
class A {
public:
A(int a) { _a = a; }
private:
int _a;
};
class B {
public:
explicit B(int b) { _b = b; }
private:
int _b;
};
int main(int argc, char* argv[]) {
A a1(1); // ok - вызывается конструктор
A a2 = 2; // ok - неявно вызывается конструктор (нет, не оператор копирования, как часто думают)
B b1(1); // ok - вызывается конструктор
B b2 = 2; // compiler error - попытка неявного вызова конструктора, помеченного как explicit
return 0;
}
> красивая и радует глаз


Отличная статья, мне и сейчас зашла. Но отсутствие всех буквально картинок разочаровывает.
Можно воспользоваться вот этой версией https://github.com/Harrix/harrix.dev-blog-2016/blob/master/2016-03-21-add-2-num-qt-quick/2016-03-21-add-2-num-qt-quick.md
QML и C++. Простой пример связки