1

Windows 8 で Qt 5.1 を使用して単純な Web リドーアを作成しています。

たとえば、Google に移動してログインし、「hello world」を検索した場合、情報を保存して後でやり直したい (つまり、フォームの送信とログインをやり直したい)。

私が試したのはこれです。

. 新しい Qt GUI アプリケーションを作成します。

. クラスを追加:

Name: MyWebView , Base class: QWebView
Inherits QWidget
header: mywebview.h
src: mywebview.cpp

. クラスを追加:

Name: MyWebPage, Base class: QWebPage
Inherits QObject
header: mywebpage.h
src: mywebpage.cpp

. MyWebPage.h を変更します。

add
public:
bool QWebPage::acceptNavigationRequest(QWebFrame * frame, const QNetworkRequest & request, NavigationType type);

. MyWebPage.cpp を変更します。

    add
    #include <QMessageBox>
    add
    bool MyWebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type)
{
     QMessageBox::about(0,"it works","it works");   
}

. MyWebView.h を変更します。

add
#include "mywebpage.h"
add
public:
MyWebPage *mwp;
MyWebPage * page(){ return mwp;}

. 次のコードを untitled1.pro に追加します。

QT       += webkitwidgets

. main.cpp を次のように変更します。

#include "mainwindow.h"
#include <QApplication>
#include "mywebview.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    MyWebView wv;
    wv.show();
    return a.exec();
}

. ビルドして実行します。

ボタン(フォームまたはリンク)をクリックするたびに、「動作します」というメッセージが表示されると思いますQMessageBox::aboutが、発生しませんでした。

どうすればacceptNavigationRequest適切に再実装できますか?

4

1 に答える 1