1

新しい 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();

}

4

4 に答える 4

1

ドキュメントには、Webkitが静的ライブラリとして機能しない可能性があることが記載されています。

プラットフォームとコンパイラのメモページから:

WebKitは、動的に構築されたライブラリとしてのみサポートされています。静的リンケージはサポートされていません。

代わりにダイナミックリンクを試してください。

于 2012-01-21T10:44:34.850 に答える
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

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

このエラーの別の原因は、Qt ライブラリの間違ったバージョン (デバッグ ビルドのリリース バージョン、またはその逆) にリンクしている可能性があります。

于 2016-06-26T13:05:12.553 に答える