QT for hello world

今天,一個朋友讓我把hello world 這個程序貼到網上,意外有點兒收穫,貼出來大家分享分享。

#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 進程,這就是結果,導致不能刪除等問題
發佈了24 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章