Qt example之Joke for Android( make for my honey)

來源:互聯網
上載者:User

這是為女朋友生日而製作的一個小小禮物,女朋友天天吵著要講笑話給她聽。現在好了,直接做一個笑話軟體給她。不過,女人嘛,感性動物,還是喜歡你親口講的!

----------------------------------------------------------------------------------------------------------------

 

所有原始碼可以通過https://github.com/BoboSp/Joke下載。

----------------------------------------------------------------------------------------------------------------

承接前面兩篇文章:

http://blog.csdn.net/teamossp/article/details/8912789

http://blog.csdn.net/teamossp/article/details/8918996

這是對這個程式的總結文章。

下面只截取部分代碼,講講自己對Qt API的理解以及c++的一些低級錯誤:

1.new and delete.

 

InternetJoke::InternetJoke(QWidget *parent)    : QDialog(parent),     joke(new QString),      networkAccess(new QNetworkAccessManager(this)),    url(new QString("http://www.jokearea.com/")),    codec(QTextCodec::codecForName("U-TF8")){    requestHttp ();    connect(networkAccess,SIGNAL(finished(QNetworkReply*))            ,this,SLOT(showHttp(QNetworkReply*)));}

類成員指標,使用new初始一個指標,那麼這是程式員在堆上建立的,最後必須delete掉,一般在解構函式裡面,不然就會造成記憶體流失問題,

 

如果是在一個函數內new的一個local指標,這也是需要手動delete的,這不同於在函數裡面定義的一個對象:

 

QTextStream textReader(reply);

這是在棧上的,函數結束後會自動回收記憶體。

 

2.Qt顯示中文

一般需要在main函數裡面添加如下代碼,

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));                            QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));//按鈕顯示中文不亂碼

而對於含有中文string的類裡,設定textcodec:

 QTextStream textReader(&xmlFile); QTextCodec *codec=QTextCodec::codecForName("UTF-8");textReader.setCodec(codec);//轉換顯示中文

 

 

3.擷取http步驟

url(new QString("http://www.jokearea.com/")),//初始化列表中 networkAccess->get(QNetworkRequest(QUrl(*url)));connect(networkAccess,SIGNAL(finished(QNetworkReply*)) ,this,SLOT(showHttp(QNetworkReply*)));void class::showHttp (QNetworkReply *reply);//處理http檔案的槽函數

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.