1

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

QWidget: Must construct a QApplication before a QPaintDevice

为什么会这样?

是的,我确实添加QT += webkit到 pro 文件中,它在这里说

在 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();

}

4

4 回答 4

1

文档中提到 Webkit 可能无法用作静态库。

平台和编译器说明页面:

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

请尝试动态链接。

于 2012-01-21T10:44:34.850 回答
0

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

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWebView w;
    w.show();    
    return a.exec();
}
于 2012-01-20T04:26:26.340 回答
0

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

不要这样做

QWebView w;
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  w.show();
  return a.exec();
}
于 2012-01-20T13:20:17.957 回答
0

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

于 2016-06-26T13:05:12.553 回答