问:QGuiApplication和QQmlApplicationEngine如何互动?

时间:2016-10-05 03:38:21

标签: qt qqmlapplicationengine

我试图理解Qt背后的潜在魔力。似乎我错过了QML和C ++如何交互的重要概念。

以下" Hello World"演示,最基本的,宣布应用程序,声明引擎,然后执行应用程序。

在这个级别,我们告诉应用程序使用引擎。 qt怎么知道?

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

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

  return app.exec();
}

1 个答案:

答案 0 :(得分:2)

没有魔法,它确实发生了。在Qt来源中,QQmlApplicationEnginePrivate.cpp中有以下内容:

QCoreApplication::instance()->setProperty(
 "__qml_using_qqmlapplicationengine", QVariant(true));

这也回答了他们如何知道引擎应该使用该应用程序的问题。

QQmlApplicationEngine只需instance() QCoreApplicationQGuiApplication或其后代 Declare @ColumnA Varchar(50) Declare @ColumnB Varchar(50) Declare @tablename Varchar(50) set @ColumnA = 'UserID' set @ColumnB = 'Salary' set @tablename = '#table' declare @Query nvarchar(max) set @Query='select '+@ColumnA+','+@ColumnB+' FROM '+@tablename+' (NOLOCK)' -- print @Query -- to see desired query. execute SP_executesql @Query 并使用它。