0
QObject::connect(webview->page()->mainFrame(), SIGNAL(initialLayoutCompleted()), webview->page()->mainFrame(), SLOT(evaluateJavaScript("alert(); null")));

私のコードはコンパイルできますが、何も起こりません。スタンドアロンでテストしたところ正常に動作するため、evaluateJavascript は問題ではありません。私がやったので、信号は問題ではありません:

QObject::connect(webview->page()->mainFrame(), SIGNAL(initialLayoutCompleted()), webview, SLOT(close())));

そして、アプリは正常に終了します。問題は「webview->page->mainFrame()」部分に関連していると思います。

ありがとう。

4

1 に答える 1

0

evaluateJavaScript("alert(); null")はスロットの名前ではなく、完全に形成された関数呼び出しです。QObject:connect()関数呼び出しではなく、引数の型を含むスロットの名前を想定しているため、 は失敗します。

おそらくQWebViewを継承して、独自のクラス内で独自のスロット関数を提供する必要があります。次に、そのevaluateJavascript("...")呼び出しをそのスロット内に配置して接続SIGNAL(initialLayoutCompleted())します。

于 2013-03-30T00:59:48.657 に答える