QWebView-QWidget:必须在出现QPaintDevice错误之前构造一个QApplication



每当我试图创建一个新的QWebView时,构建后的错误是

QWidget: Must construct a QApplication before a QPaintDevice

为什么会发生这种情况?

是的,我确实在专业文件中添加了QT += webkit,上面写着

在qwtconfig.pri 中

CONFIG+=QwtDll此行必须->

#CONFIG+=QwtDll

qtwconfig.pri在哪里?

FWI我正在静态构建

这是main()

#include "MyWidget.h"
#include <QPlastiqueStyle>
#include <QtPlugin>
#include <QtWebKit/QWebView>
Q_IMPORT_PLUGIN(qico)

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
app.setStyle(new QPlastiqueStyle);
app.setFont(QFont("Calibri"));
MyWidget widget;
widget.show();
QWebView w;
    w.show();
return app.exec();

}

文档提到Webkit可能不能作为静态库工作。

从平台和编译器说明页面:

WebKit仅作为动态构建的库受支持。不支持静态链接。

请尝试动态链接。

您需要实例化一个QApplication对象才能使用任何基于小部件的类,并且必须首先创建它,所以您的main()应该是这样的。。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWebView w;
    w.show();    
    return a.exec();
}

假设您正在创建一个QApplication,请确保您没有静态分配对象。

不要这样做

QWebView w;
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  w.show();
  return a.exec();
}

此错误的另一个来源可能是链接到错误版本的Qt库-调试构建的发布版本,反之亦然。

相关内容

  • 没有找到相关文章

最新更新