Mingz技术博客

...

导航

2013年7月24日 #

QT QHTTP操作入门

摘要: 最近由于要做一些关于QT方面的东西,需要访问网络,利用HTTP协议。刚刚好QT里实现了HTTP协议,即QHttp类,学习一下应该可以排上用场。但是QT Assistant上说:The class works asynchronously, so there are no blocking functions.也就是说这个类里面的所有的函数都是异步的,不会阻塞。当你向服务器发送了一个request后,函数立即返回,不等服务器返回response,也不管结果是成功还是失败。在发送请求后,会触发一系列事件:requestStarted(2)stateChanged(Connecting)stateC 阅读全文

posted @ 2013-07-24 16:34 Mingz2013 阅读(1184) 评论(0) 推荐(0)

QT笔记67:使用QWEBVIEW显示网页

摘要: 具体可参见qt下的例子-webkit\previewer通过webview->setHtml(string);即可加载显示网页信息另外通过QWebFrame* frame = webview->page()->mainFrame();即获取当前网页源码感觉QWebView使用很方便的,只不过QWebkit.dll大小为11.5m太夸张了. 阅读全文

posted @ 2013-07-24 16:32 Mingz2013 阅读(560) 评论(0) 推荐(0)

QT笔记69:使用QNETWORKACCESSMANAGER阻塞获取网路资源大小

摘要: qint64get_size(){QStringlink=url->text();std::coutheader(QNetworkRequest::ContentLengthHeader);deletereply;qint64size=var.toLongLong();std::cout<<size<<std::endl;returnsize;}发表于 2013-01-27 22:31CCSDU2009阅读(247)评论(0)编辑收藏引用所属分类:QT编程 阅读全文

posted @ 2013-07-24 16:31 Mingz2013 阅读(483) 评论(0) 推荐(0)

QT笔记70:保存文档为PDF格式

摘要: QPrinter printer(QPrinter::HighResolution); printer.setOutputFormat(QPrinter::PdfFormat); QString name = ui.line->text(); printer.setOutputFileName(pdf); ui.text->document()->print(&printer);很简单 不过貌似没有保存为doc文档的接口 阅读全文

posted @ 2013-07-24 16:30 Mingz2013 阅读(348) 评论(0) 推荐(0)

QT学习笔记-29.使用QT HTTP下载网络文件

摘要: QT附带的例子比较好:classHttpWindow:publicQDialog{Q_OBJECTpublic:HttpWindow(QWidget*parent=0);voidstartRequest(QUrlurl);privateslots:voiddownloadFile();voidcancelDownload();voidhttpFinished();voidhttpReadyRead();voidupdateDataReadProgress(qint64bytesRead,qint64totalBytes);voidenableDownloadButton();voidslotA 阅读全文

posted @ 2013-07-24 16:28 Mingz2013 阅读(982) 评论(0) 推荐(0)

Qt网络之HTTP编程(转)

摘要: 在Qt网络编程中,需要用到协议,即HTTP。它是超文本传输协议,它是一种文件传输协议。这一节中我们将讲解如何利用HTTP从网站上下载文件。使用的编程环境为Windows下基于Qt 4.6.3的Qt Creator 1.3.1一、最简单的实现。1.我们新建Qt4 Gui QApplication 。工程名为“http”,然后选中QtNetwork模块,最后Base class选择QWidget 。注意:如果新建工程时没有添加QtNetwork模块,那么就要手动在工程文件.pro中添加代码QT+=network表明我们使用了网络模块。2.我们在widget.ui文件中添加一个 Text Brows 阅读全文

posted @ 2013-07-24 16:26 Mingz2013 阅读(578) 评论(0) 推荐(1)

QT分析之网络编程(二)

摘要: 前面分析(一)之前没有看QT自带的文档,看了doc之后对QT的网络体系有一个大致的了解:QNatvieSocketEnginePrivate是OS相关的API封装,和QNativeSocketEngine一起构成具体平台SOCKET实现;QTcpSocket、QUdpSocket、QTcpServer构成底层的应用API;QSslSocket是SSL加密相关API;QHttp、QFtp构成高层次应该API;QNetworkAccessManager、QNetworkRequest、QNetworkReply是高度抽象的网络层。分析TCP的例子fortuneclient,运行起来按了[Get F 阅读全文

posted @ 2013-07-24 15:19 Mingz2013 阅读(786) 评论(0) 推荐(0)

QT分析之网络编程(三)

摘要: 3、读取信息在QAbstractSocket中,有两个成员是收发数据用的:readData()、writeData()readData()有两种读取方式:有缓冲和无缓冲方式。基本原理是一致的,简单其见只分析无缓冲直接读取方式。qint64 QAbstractSocket::readData(char *data, qint64 maxSize){ Q_D(QAbstractSocket); if (d->socketEngine && !d->socketEngine->isReadNotificationEnabled() && d-> 阅读全文

posted @ 2013-07-24 15:18 Mingz2013 阅读(498) 评论(0) 推荐(0)

QT分析之网络编程(一)

摘要: 首先对Windows下的网络编程总结一下:如果是服务器,其WinSDK调用分别为:WSAStartup() -> socket() -> htons() / htonl() -> bind() -> listen() -> accept() -> recv() / send() -> closesocket() -> WSACleanup()如果是客户端程序,其调用序列为:WSAStartup() -> socket() -> htons() / htonl() -> connect() -> recv() / send( 阅读全文

posted @ 2013-07-24 15:18 Mingz2013 阅读(398) 评论(0) 推荐(0)

QT分析之网络编程(四)

摘要: 前面分析中,一个问题一直没有解决:新生成的SOCKET是什么时候加入WSASelect()的?另外还有一个不是很大的问题,close流程。在QEventDispatcherWin32Private::doWsaAsyncSelect()中WSAAsyncSelect()设置一个断点,观察call stack:> QtCored4.dll!QEventDispatcherWin32Private::doWsaAsyncSelect(int socket=0x00001628) 行633 C++ QtCored4.dll!QEventDispatcherWin32::registerSock 阅读全文

posted @ 2013-07-24 15:17 Mingz2013 阅读(1208) 评论(0) 推荐(0)