QTを使ったネットワーク上の情報取得
Twitter関連で触ってみたい!!
と思ったけど、QTのネットワーク関連に触れてなかったのでメモ。
大事なのはQNetworkAccessManager::QRequestでリクエストして、QNetworkAccessManager::getで取得する時はconnectしないと受け取れない。
getで取得したものは、直接格納するかポインタで参照できると思ったらできないらしいですね・・・。
あとQUrlの部分は普通にStringでセットすればいいのかな~と思ってたら、QUrlってオブジェクトがあるんですね・・・。
オブジェクトが受け取れるならURLの他にも用途があるってことなのかな。
今日はこのへんで・・・。
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); manager = new QNetworkAccessManager(); txtview = ui->txtView; QMessageBox* mbox = new QMessageBox(this); mbox->setText(QString("test")); mbox->show(); QObject::connect(mbox, SIGNAL(buttonClicked(QAbstractButton *)),this,SLOT(mbox_Btn_clicked())); connect(manager, SIGNAL(finished(QNetworkReply*)),this,SLOT(Reply(QNetworkReply*))); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_Btn_clicked() { } void MainWindow::mbox_Btn_clicked() { QString souce("http://www.google.co.jp"); QUrl url(souce); QNetworkRequest request(url); manager->get(request); } void MainWindow::Reply(QNetworkReply *reply) { QByteArray Response = reply->readAll(); txtview->setText(QString::fromUtf8(Response)); }