Глава 60 – Qt Quick и C++

Qt Quick и C++

Приобрести книгу можно на сайте ozon.ru и в электронном виде на Google Play:
Приобрести книгу о Qt и C++ на Ozon.ru Купить книгу о Qt и C++ на Goole Play

8 thoughts on “Глава 60 – Qt Quick и C++

  1. Глава 6 страница 907, опечатка вместо QString::split, QString::slit

  2. Здравствуйте, Макс. Зачем листинге 60.6 используется QQmlComponent?
    QT Creator создает код:
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral(“qrc:/main.qml”)));
    и из engine.rootObjects() мы получаем ссылку на корневой элемент без использования дополнительных классов.

    1. Антон, да в качестве альтернативы можно обойтись и без 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();
      QObject* pcmdQuitButton = pobj->findChild(“QuitButton”);
      if (pcmdQuitButton) {
      QObject::connect(pcmdQuitButton, SIGNAL(quitClicked()),
      &cc, SLOT(slotQuit())
      );
      }
      QObject* pcmdInfoButton = pobj->findChild(“InfoButton”);
      if (pcmdInfoButton) {
      QObject::connect(pcmdInfoButton, SIGNAL(infoClicked(QString)),
      &cc, SLOT(slotInfo(QString))
      );
      }

      return app.exec();
      }

  3. Листинг 60.7:
    QMessageBox::information(0, “Message”, “It’s my message”);
    Должно быть:
    QMessageBox::information(this, “Message”, “It’s my message”);
    Иначе при нажатии на список программа вместе с MessageBox теряет фокус и уходит в background.

    btw. Макс, есть возможность получить электронный макет книги? Я сначала пользовался сканом, потом купил в озоне бумажную копию, но читать в электронном виде мне все равно удобнее. В том числе потому, что качество издания (бумага) оставляет желать лучшего.

  4. Добрый день.
    Программа 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 не выводится?

    1. Здравствуйте, Егор. Честно говоря, мне странно, что появляется сообщение “ReferenceError:”.

Leave a Reply

Your email address will not be published.

Please reload

Please Wait