QWebView - QWidget:必须在 QPaintDevice 错误之前构造 QApplication
每当我尝试创建新的 QWebView 时,构建后错误为
QWidget: Must Construction a QApplication before a QPaintDevice
为什么会发生这种情况?
是的,我确实将 QT += webkit
添加到 pro 文件中,它在这里说
In 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();
}
Whenever I try to create a new QWebView, the post-build error is
QWidget: Must construct a QApplication before a QPaintDevice
why is this happening?
Yes, i did add QT += webkit
to the pro file, and it says here
In qwtconfig.pri
CONFIG += QwtDll this line must be ->
#CONFIG += QwtDll
where is qtwconfig.pri?
FWI i'm on a static build
Here is 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();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
文档提到 Webkit 可能无法作为静态库工作。
从平台和编译器注释页面:
尝试使用动态链接代替。
The documentation mentions Webkit may not work as a static library.
From the Platform and Compiler Notes page:
Try dynamic linking instead.
您需要实例化一个 QApplication 对象才能使用任何基于小部件的类,并且必须首先创建它,因此您的 main() 应该如下所示。
You need to instantiate a
QApplication
object in order to use any widget based class and it must be created first, so yourmain()
should look something like this..假设您正在创建一个
QApplication
,请确保您没有静态分配该对象。不要这样做
Assuming you are creating a
QApplication
, make sure you're not statically allocating the object.Don't do this
此错误的另一个来源可能是链接到错误版本的 Qt 库 - 调试版本的发行版本,反之亦然。
Another source of this error can be linking to the wrong version of a Qt library - a release version for a debug build or vice versa.