最近碰到需要使用qt做介面開發的項目。記得上次使用QT都是兩年前的事了,那時候QT3,當時用起來還是覺得很舒服的。但現在把QT4裝上我才知道,原來QT都發生了很大的變化了。uic,qmake的使用都變化了。所以用了一下午時間來適應這個新環境。
首先,閱讀以下幾篇blog。基本上就已經有大體思路了。
http://blog.csdn.net/sgnaw/article/details/2595389
http://www.cnblogs.com/bigshow/archive/2008/10/23/1318267.html
http://blog.csdn.net/apple1985507/article/details/5387125
有了大體思路,但就依靠以上BLog仍然無法調通一個測試程式,經過一下午的努力,終於找到瞭解決方法。總結如下。
1,
qt4的QDialog標頭檔是由C++編寫的,所以在申明的時候使用#include<QDialog>,而不是用#include<QDialog.h>,否則在編譯時間會出現 QDialog.h不存在;
2,重新使用原來的ui檔案時(即直接開啟已存在的ui檔案),需要刪除make產生的東西(run make clean)、刪除原來的可執行檔、.pro檔案、 Makefile檔案、.h檔案。
新添加訊號槽時:需要進行如下操作,
1,由新的.ui檔案產生.h檔案(eg, form1.ui -> form1.h)
2,在MyDlg.h中申明標頭檔(#include<QMessageBox>以及自訂的槽 eg: public slots: void ShowInfo();
3,在MyDlg.h中的MyDlg建構函式中聲明訊號槽的串連,並實現這個訊號。
eg:
QObject::connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(ShowInfo()));
void MyDlg::ShowInfo()
{
QMessageBox::information(this, tr("Hello"), tr("Hello World"), tr("OK"));
}
4,重新運行qmake進行編譯,最終運行;
現在,重新定義更複雜slot,你就可以實現更複雜的功能了。good luck.