2

そのため、1 つの HTML ページ (私のアプリのスクリプトのようなもの) に対して JavaScript を解析する必要がありますが、QWebPage を初期化しようとすると、SIGSEGV がスローされます。コンソール アプリケーションです。私のコードの関連部分:

QT       += core sql network xml webkit

QT       -= gui

QMAKE_CXXFLAGS += -std=c++11

LIBS += -lqca

TARGET = jarvisd
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app
QWebPage * p = new QWebPage();
p->mainFrame()->load(QUrl(url));

最初の行でクラッシュします。QWebPageのドキュメントから、「ウィジェットのない環境でQWebPageを使用する」の部分から、これは可能であるようです。しかし、エラーはありません。ただ sigsegv :/

ご協力いただきありがとうございます。

4

1 に答える 1

1

QT += コア ウィジェット sql ネットワーク xml webkit webkitwidgets

次のようなものを使用します。

QWebView *view = new QWebView();
view->load(QUrl("http://127.0.0.1"));
QObject::connect(view, &QWebView::loadFinished, [view](){fprintf(stderr, view->title().toLocal8Bit().data());});

上記のコードで使用されている Qt5 シグナル + ラムダ関数。

編集: 上記のコードは、Windows 7 のコンソール モードで実行されます。このスニペットを投稿のものに置き換えました。それもうまくいきます。

編集2:わかりました。クラッシュの原因がわかりました。QCoreApplication を QApplication に置き換えてみてください。また、プロジェクト ファイルに webkitwigets が必要です。

于 2013-08-19T07:20:39.480 に答える