2010年5月28日 星期五

API 網頁

Plurk API
http://www.plurk.com/API

Facebook Developer
http://developers.facebook.com/

Twitter API
http://apiwiki.twitter.com/Twitter-API-Documentation

Qt 中解析 JSON 文件

在Qt中要解析JSON的文件有套相當方便的Libary可供使用

可以使用 apt-get install libqjson-dev直接安裝

網站上也有提供使用說明和範例

使用時要在.pro中加上

LIBS += -L/usr/lib -lqjson

程式中加入

#include < qjson/parser.h >

其他請參照說明網頁

http://qjson.sourceforge.net/usage.html

2010年5月27日 星期四

Qt Http Get 簡單實作

現在網路上很多資料可以直接上網取得最新的資訊
也有很多網站提供API可以使用
而使用方法大都是利用http直接存取
http Get的方式就是一種
一般最簡單的用法就是之前提到Google 天氣API那樣直接接在網址後面就可以了
像http://www.google.com/ig/api?weather=,,,22625108,120308954
可以取得天氣的資訊
那在weather就是一個變數而後面的,,,22625108,120308954是給這變數的值
可以用&接在後面然後加其他的變數
在Qt中要用到HTTP就需要include < QHttp > 和 < QUrl > 以及 < QFile >
簡單的範例如下

//QUrl 用來設定網址內容
QUrl url;
//輸入網址
url = QUrl("http://www.google.com/ig/api");
//加入變數和值
url.addQueryItem("weather",",,,22625108,120308954");
//QFileInfo檔案資訊(用來取得輸入網址後面的名稱)若自定名稱就不需要
QFileInfo fileInfo(url.path());
QString fileName = fileInfo.fileName();
if (fileName.isEmpty()) {
fileName = "index.html";
}
//QFile檔案(用來儲存得到的網頁內容)
file = new QFile(fileName);
if (!file->open(QIODevice::WriteOnly)) {
qDebug()<<"Unable to save the file";
delete file;
file = 0;
return;
}
//QHttp用來做Http的Connection
http = new QHttp(this);
//連結完成的事件...另有很多其他事件可用如狀態變更、連線、傳輸進度等
connect(http,SIGNAL(done(bool)), this, SLOT(test(bool)));

//設定連接的伺服器和port
http->setHost(url.host(), url.port(80));
//使用HTTP Get command
http->get(url.toString(), file);
//結束這http connection
http->close();

主要的程式就是這一部份其他的部分再依照需求加上即可

2010年5月19日 星期三

Qt DesktopWidget 判斷視窗大小變換

Qt提供了一個QtDesktopWidget讀取Desktop的一些事件和屬性

//使用前需include
#include < QtGui/QDesktopWidget >
//接著就是宣告
QDesktopWidget *mDesktop;
//指定desktop
mDesktop = qApp->desktop();
//讀取Window 寬高
width = mDesktop->width();
height = mDesktop->height();
//指定視窗變化事件
connect(mDesktop,SIGNAL(resized(int)),this,SLOT(resizedSlot(int)) );