Получение ответа от внешней веб-страницы, отображаемой с помощью Qt

У меня есть ситуация, когда я хочу открыть веб-страницу, с которой пользователь будет взаимодействовать, и когда они нажимают на кнопку отправки, отправляется ответ, и я хочу получить этот ответ в моей программе Qt, а затем уничтожить представление с помощью страница. Я могу открыть страницу следующим образом:

  Dialog.resize(1500, 1000);
  loginView = new QWebView(&Dialog);
  loginView->setObjectName(QStringLiteral("webView"));
  loginView->setUrl(QUrl(QStringLiteral("http://foo.bar.com/baz/")));
  Dialog.exec();

Но я понятия не имею, как я могу получить ответ, когда пользователь отправляет страницу, и как я могу уничтожить страницу.

В Интернете я нашел информацию о том, как это сделать:

    QWebEngineView *view = new QWebEngineView(parent);
    view->load(QUrl("http://qt-project.org/"));
    view->show();

Или это:

#include"myWebView.h"

int main(int argc,char** argv)
{
      QApplication app(argc,argv);
      myWebView* view = new myWebView();

      view->load(QUrl("http://www.google.co.uk"));
      view->resize(500,500);

      view->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
      view->show();
      return app.exec();
}
#include <QtWebKit>
#include <QtGui>
class myWebView:public QWebView
{
  Q_OBJECT
public:
  myWebView():QWebView()
  {
    connect(this,SIGNAL(linkClicked(QUrl)),this,SLOT(linkClicked(QUrl)));
  };
  ~myWebView()
  {};

private slots:  
  void linkClicked(QUrl url)
  {   
    QMessageBox::information(this,"Hello!","You Clicked: \n"+url.toString());
  }; 
};

Который кажется лучше, но я все еще не знаю, как я получил бы ответ от страницы назад.

ОБНОВЛЕНИЕ: Это то, что мой код в настоящее время:

void cap::userLoginStatusButton_clicked()
{
  loginDialog = new QDialog();
  loginDialog->resize(1500, 1000);
  loginView = new QWebView(loginDialog);
  loginView->setObjectName(QStringLiteral("webView"));
  loginView->setUrl(QUrl(QStringLiteral("http://foo.bar.com/baz/")));
  connect(loginView, SIGNAL(urlChanged(QUrl)), this, SLOT(loginCompleted(QUrl)));
  loginDialog->exec();
}

void cap::loginCompleted(QUrl url)
{
  // here is where I am stuck - how do I get the JSON returned from http://foo.bar.com/baz/ here????
}

0 ответов

Другие вопросы по тегам