随机笑话网站感谢提供支持:http://520xq.com/
http://www.jokearea.com/
如果Qt程序需要需用network,必须要在.pro文件中添加QT+=network
QString::simplified();//删除文中全部空格
Qstring::remove(" ')//从去掉“ ”中的内容
Qstring::indexOf()//返回" "中索引所在位置(int)
QString::mid(x,y);//从x开始获取后面的y个字符。
添加网络获取笑话并显示功能:
设计思路:通过QNetworkAccessManger获取网页内容,并存储在一个Qstring类的对象中,通过该对象处理并获得笑话内容
主要代码:
/
url=QString("http://www.jokearea.com/");
networkAccess->get(QNetworkRequest(QUrl(url)));//发送之后,在QNetworkAccessManger获取reply后会发送一个信号,
showHttp(QNetworkReply*reply)
QTextStreamtextReader(reply);
QTextCodec*codec=QTextCodec::codecForName("U-TF8");
textReader.setCodec(codec);//转换显示中文
QStringcontent=textReader.readAll();
if((j=content.indexOf("<p>",0))!=-1){
if((i=content.indexOf("</p>",j-5,Qt::CaseInsensitive))!=-1){
joke=content.mid(j+3,i-j-3);
}
}
scrollArea=newQScrollArea;
scrollArea->setWidget(label);
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
label->setFixWidth(450);//限定宽度为450
每一次更新label:获取新的内容后需要调用
adjustSize();重新设置大小
label->adjustSize();
http://99tiantian.blog.163.com/blog/static/220056512011751435446/ xml资料
XML文件处理:
QStringjoke;
QTextStreamtextReader(reply);
QTextCodec*codec=QTextCodec::codecForName("GBK");
textReader.setCodec(codec);//转换显示中文
QStringcontent=textReader.readAll();
QXmlStreamReaderreader(content);
while(!reader.atEnd()){
reader.readNext();
if(reader.isStartElement()&&
reader.name()=="div"){//获取随机数对应的joke
joke=reader.attributes().value("div").toString();
break;
}