每当我试图创建一个新的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库-调试构建的发布版本,反之亦然。