我有一个使用mainwindow小部件的Qt Gui应用程序。窗口类如下所示:
class MainWindow : public QMainWindow
{
Q_OBJECT
...
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
//some more code
private:
class2* m_data;
}
在class2中,我想使用qscriptengine。简而言之,它看起来像这样:
class2.h:
class class2: public QObject
{
Q_OBJECT
public:
class2(QObject* parent = nullptr);
...
private:
QScriptEngine* m_engine;
}
class2.cpp:
class2::class2(QObject* parent)
:QObject(parent)
{
m_engine = new QScriptEngine(this); //this line fails!!
//some other code
}
还有一个main.cpp文件,通常显示为:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
在初始化qscript引擎时,应用程序崩溃。调试器将我引向qscriptengine.cpp,错误qFatal(“ QScriptEngine:必须在QScriptEngine之前构造一个Q(Core)Application”);。它还在ucrtbase.dll中显示了未处理的异常。 令人惊讶的是,它可以在发行版配置中运行(但在某处失败),并且在调试配置中启动时失败。认为这可能是相关的。 我在做什么错,我该如何解决? 我确实在将qtscript库包含到项目中时遇到了问题,但是在我看来,我已经解决了它们。我通过#pragma注释和项目属性将库添加到项目中。我应该复制其.lib和.dll文件还是类似文件?..
答案 0 :(得分:1)
问题是通过重新安装Qt并以其他依赖项包括项目中的库来解决的,而不是通过注释来解决。