読者です 読者をやめる 読者になる 読者になる

PenguinがWorkWorkする blog

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

QTを使ったネットワーク上の情報取得

QT C++

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


}