2010年4月27日 星期二

Qt IM開發工具

說明

在Qt中IM 可以使用Telepathy這套libary

在Moblin也是同樣是用Telepathy, Telepathy是一個IM, 可以用DBus控制 Empathy就是一個Telepathy的Client

由於在Telepathy要用到DBus所以在Qt中使用時要在專案檔(.pro)加入   CONFIG += qdbus


參考網站
Telepathy-Qt4
http://telepathy.freedesktop.org/doc/telepathy-qt4/

Telepathy Developer's Manual
http://people.collabora.co.uk/~danni/telepathy-book/index.html

2010年4月21日 星期三

Qt 讀寫 XML

首先在專案檔要加入
QT += xml
不然會出現錯誤

建立XML

//建立Document
QDomDocument doc( "Favorite" );
//建立root
QDomElement root = doc.createElement( "favorite" );
//將root加入doc
doc.appendChild( root );

到這邊已經建立好基本的XML了
接下來就是將資料放入XML

//建立節點
QDomElement app = doc.createElement( "application" );
//設定節點屬性的“名稱”和“內容”
app.setAttribute( "name", "Skype" );
//將節點放到root下成為一個子節點
root.appendChild( app );

這邊XML加入子節點和屬性的方法都有了剩下就是個人自己設計架構了
設計完了後要存檔

QFile file( "favor.xml" );
//開檔
if( !file.open( QFile::WriteOnly | QFile::Text ) )
{
//設定錯誤訊息
}
//設定QTextStream
QTextStream ts( &file );
//資料寫入
ts << doc.toString();
//既然有開檔當然就要關檔
file.close();

到這邊一個完整的XML就完成了
再來是要把檔案讀出來

QDomDocument doc;
QFile file(favor.xml);
QString errorStr;
int errorLine;
int errorCol;
if(!doc.setContent(&file,true,&errorStr,&errorLine,&errorCol))
{
//如果有錯在這邊處理
}
file.close();

這邊已經完成開檔動作
接著開始讀取內容

QDomNode root = doc.firstChild();
//檢查是否有子節點
if(root.hasChildNodes())
{
//取得所有子節點
QDomNodeList list=firstnode.childNodes();
//掃描所有子節點
for(int i = 0; i < list.count(); i++)
{
//取得第i個子節點
QDomNode node=list.at(i);
//節點名稱
qDebug() << node.nodeName();

QDomElement app = node.toElement();
//下面就是節點的屬性了
qDebug() << app.attribute("name");
}
}


以上就是XML基本會用到的東西

2010年4月16日 星期五

Qt 掃描目錄中的檔案

#include 《QDir》

QDir dir;
//設定要過濾的檔名
QStringList filters;
filters << "*.desktop";
//選擇目錄
dir.setPath("/usr/share/applications/");
//過濾檔案
dir.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
//檔案排序
dir.setSorting( QDir::Size | QDir::Reversed );
//過濾檔名
dir.setNameFilters(filters);

QFileInfoList list = dir.entryInfoList();
QFileInfo fi;
qDebug()<<"Bytes Filename";

for(int i = 0; i < list.count(); i++)
{
fi = list.at(i);
qDebug()《"file size:"《fi.size()《", file name:"《fi.fileName();
}

2010年4月14日 星期三

Linux Application選單

首先要先讀取哪些選項要顯示的
讀取
~/.config/menus/applications.menu
/etc/xdg/menus/applications.menu (一定會存在)

在/usr/share/desktop-directories/目錄中
可找到對應的.directory
即可得到對應選單的資訊

然後檢查/usr/share/applications
這目錄下的.desktop
就能得到所有的application的資訊

而icon大部份會存在
/usr/share/icons/
/usr/share/pixmaps/
這些目錄中

其他資訊參考這篇
http://library.gnome.org/admin/system-admin-guide/2.30/menustructure-0

2010年4月13日 星期二

在ubuntu 9.10 安裝FireFox 3.6

sudo tar -C /opt/ -xf FireFox3.6的.tar.bz2


sudo ln -sf /opt/firefox/firefox /usr/bin/firefox