Q_PROPERTY(QQmlApplicationEngine* qEngine
READ qEngine
WRITE setQEngine
NOTIFY qEngineChanged)
Q_PROPERTY(int qEngine
READ qEngine
WRITE setQEngine
NOTIFY qEngineChanged)
QQmlApplicationEngine* engine = new QQmlApplicationEngine();
QQmlContext *context = engine->rootContext();
context->setContextProperty("QEngine", engine);
engine->load(QUrl(QStringLiteral("qrc:/main.qml")));
#include <QQmlApplicationEngine>
...
Q_PROPERTY(QQmlApplicationEngine* qEngine
READ qEngine
WRITE setQEngine
NOTIFY qEngineChanged)
...
void setQEngine(QQmlApplicationEngine* qEngine)
{
if(mEngine == qEngine)
return;
mEngine = qEngine;
emit qEngineChanged();
}
MyComponent {
....
qEngine: QEngine
}
По количеству всех проверок за один тик - да, разницы не будет, а вот в плане производительности мне почему то кажется что будет разница, причем разница в пользу того метода, который использую я :) Я не могу толком объяснить почему, может это какой-то психологический барьер такой - я создаю 2 цикла с кучей проверок, они у меня на виду и их всего 2 - я это знаю, я в этом уверен. А во втором методе я создаю столько циклов, сколько будет объектов на карте — это величина очень неопределенная и даже устрашающая =) однако второй метод кажется более привлекательным в плане удобства написания кода — для разных типов объектов могут быть использованы разные классы, в которых будет по разному описано их поведение. В итоге финальный код «тика» становится более компактным, в нем проще искать ошибки и исправлять их.
Конечно, я могу быть не прав, потому и спрашиваю, чем можно обосновать "толком не изменится в плане производительности".