#include <QApplication>#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel *gao = new QLabel("<h2><i>hello</i>" " <i><font color = green>world</font><h2></i>");
gao->show();
delete gao; //be careful
return a.exec();
}
通過這一個簡單的程序,我有這麼幾點心得。
1.每一個QT類,都有一個與該類同名(Q和首字母都大寫)的頭文,爲什麼前面加q而不加其他的字母呢,據說是因爲Q的大寫在LINUX下面顯示出比較好看;
2.QApplication 對象是用來管理整個應用程序所用到的資源,構造函數可以接受命令行參數;
3.QLabel 對象是一個widget,在QT中游許多這樣的類例如QPushButton,QSlider,QSpinBox等等;
4.QLabel 對象的構造函數可以傳HTML樣式字符串,用來改變窗口文字的樣式;
5.關於 delete gao這句代碼的調用,本人認爲完全可以不寫,因爲在調用show()方法後,你將此程序指針gao指向的對象的內存釋放,窗口就會消失,只是閃爍一下,delete的只是一個label而已,但是程序還以進程的方式被OS調用,那麼,會導致你錯覺的認爲程序已經結束,這樣就會導致不明不白的內存泄露,建議不寫,等到你在窗口上點擊關閉按鈕時,renturn 代碼被執行,返回給OS 正確的參數,OS銷燬此進程,內存不會泄露。
看上面hello 進程,這就是結果,導致不能刪除等問題