Здравствуйте, Макс. Зачем листинге 60.6 используется QQmlComponent?
QT Creator создает код:
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral(“qrc:/main.qml”)));
и из engine.rootObjects() мы получаем ссылку на корневой элемент без использования дополнительных классов.
Антон, да в качестве альтернативы можно обойтись и без QQmlComponent. Тогда код программы будет следующим:
#include
#include
#include “CppConnection.h”
Листинг 60.7:
QMessageBox::information(0, “Message”, “It’s my message”);
Должно быть:
QMessageBox::information(this, “Message”, “It’s my message”);
Иначе при нажатии на список программа вместе с MessageBox теряет фокус и уходит в background.
btw. Макс, есть возможность получить электронный макет книги? Я сначала пользовался сканом, потом купил в озоне бумажную копию, но читать в электронном виде мне все равно удобнее. В том числе потому, что качество издания (бумага) оставляет желать лучшего.
Добрый день.
Программа CPPExtension при запуске выдает d QML debugging console следующее:
qrc:/main.qml:4: ReferenceError: myColor is not defined
qrc:/main.qml:9: ReferenceError: myText is not defined
qrc:/main.qml:13: ReferenceError: myModel is not defined
qrc:/main.qml:4: ReferenceError: myColor is not defined
qrc:/main.qml:9: ReferenceError: myText is not defined
qrc:/main.qml:4: ReferenceError: myColor is not defined
связка происходит кодом:
pcon->setContextProperty(“myModel”, pmodel);
pcon->setContextProperty(“myText”, “It’s my text!”);
pcon->setContextProperty(“myColor”, QColor(Qt::yellow));
pcon->setContextProperty(“myWidget”, this);
Вопрос: почему в QML debugging console выводится информация по myColor, myText, myMode, при этом по myWidget не выводится?
Глава 6 страница 907, опечатка вместо QString::split, QString::slit
Спасибо Андрей, опечатку в следующий раз исправлю.
Здравствуйте, Макс. Зачем листинге 60.6 используется QQmlComponent?
QT Creator создает код:
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral(“qrc:/main.qml”)));
и из engine.rootObjects() мы получаем ссылку на корневой элемент без использования дополнительных классов.
Антон, да в качестве альтернативы можно обойтись и без QQmlComponent. Тогда код программы будет следующим:
#include
#include
#include “CppConnection.h”
// ———————————————————————-
int main(int argc, char** argv)
{
QGuiApplication app(argc,argv);
QQmlApplicationEngine eng;
eng.load(QUrl(“qrc:/main.qml”));
CppConnection cc;
QObject* pobj = eng.rootObjects().first();(“QuitButton”);(“InfoButton”);
QObject* pcmdQuitButton = pobj->findChild
if (pcmdQuitButton) {
QObject::connect(pcmdQuitButton, SIGNAL(quitClicked()),
&cc, SLOT(slotQuit())
);
}
QObject* pcmdInfoButton = pobj->findChild
if (pcmdInfoButton) {
QObject::connect(pcmdInfoButton, SIGNAL(infoClicked(QString)),
&cc, SLOT(slotInfo(QString))
);
}
return app.exec();
}
Листинг 60.7:
QMessageBox::information(0, “Message”, “It’s my message”);
Должно быть:
QMessageBox::information(this, “Message”, “It’s my message”);
Иначе при нажатии на список программа вместе с MessageBox теряет фокус и уходит в background.
btw. Макс, есть возможность получить электронный макет книги? Я сначала пользовался сканом, потом купил в озоне бумажную копию, но читать в электронном виде мне все равно удобнее. В том числе потому, что качество издания (бумага) оставляет желать лучшего.
Спасибо, обязательно учту Ваше замечание. На счет электронного макета, в GooglePlay есть книга в электронном виде, вот ссылка: https://play.google.com/store/books/details/Макс_Шлее_Qt_5_10_Профессиональное_программировани?id=J4N0DwAAQBAJ
Добрый день.
Программа CPPExtension при запуске выдает d QML debugging console следующее:
qrc:/main.qml:4: ReferenceError: myColor is not defined
qrc:/main.qml:9: ReferenceError: myText is not defined
qrc:/main.qml:13: ReferenceError: myModel is not defined
qrc:/main.qml:4: ReferenceError: myColor is not defined
qrc:/main.qml:9: ReferenceError: myText is not defined
qrc:/main.qml:4: ReferenceError: myColor is not defined
связка происходит кодом:
pcon->setContextProperty(“myModel”, pmodel);
pcon->setContextProperty(“myText”, “It’s my text!”);
pcon->setContextProperty(“myColor”, QColor(Qt::yellow));
pcon->setContextProperty(“myWidget”, this);
Вопрос: почему в QML debugging console выводится информация по myColor, myText, myMode, при этом по myWidget не выводится?
Здравствуйте, Егор. Честно говоря, мне странно, что появляется сообщение “ReferenceError:”.