PenguinがWorkWorkする blog

ネット上で気になることや、android等について書くブログ

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));


}