摘要:之前一直用的是Liferea。个人觉得不是很好。不喜欢的地方有三点:1.经常不响应。这个不知道是为什么,经常卡住。2.我需要的只是每天能看到更新的新闻。感觉设置的很多功能是我永远也用不到的。3.界面。看新闻的是,我更希望的是它给我的是一个新闻的列表,像谷歌阅读器那样,然后我选择自己喜欢的去全文阅读。而不是像它这样在一个界面上只给文章内容很小的地方,看这感觉总觉得缺了点什么。先在用的是google reader,虽然速度有时慢了点,但还是很值得的。刚开始也想自己做一个,不过当时太忙了,做了一半就放下了,现在也懒得做下去了,不过主要的功能都实现了,虽然看起来很难看。记录一下当时做的思路。当时想做的
阅读全文
摘要:有了TCP、线程池,我们就可以把他们连接起来。使用最简单的 QMainWindow吧,设计个UI,而后,创建我们的线程池、Service,并把TcpService 的数据接收信号与线程池的数据处理信号连接起来。 为了模拟处理任务,我们简单的设计一个转换大小写字符的函数作为处理过程的模拟,这样有利于在超级终端调试、模拟。[cpp]#ifndef MYTASKITEM_H#define MYTASKITEM_H#include "qghthreadtaskitem.h"class MyTaskItem : public QGHThreadTaskItem{ Q_OBJECTpu
阅读全文
摘要:[html]//tcpserver.h#ifndef TCPSERVER_H#define TCPSERVER_H#include "tcpthread.h"#includeclass TcpServer:public QTcpServer{ Q_OBJECTpublic: explicit TcpServer(QObject *parent=0); //Object obj;signals://更新UI void bytesArrived(qint64,qint32,int);protected: void incomingConnection(int socketDes
阅读全文
摘要:使用了2个正则表达式库,分别是QRegExp、pcre和pcre++。正则表达式的写法一般都是通用的,但对于贪婪匹配,不同的正则库有些不同。在pcre中,非贪婪模式是由'?'来指定的,但在QRegExp中,存在'?',为不合法的正则表达式,在QRegExp中,要使用setMinimal函数来指定贪婪算法。setMinimal函数的意思是设置最小匹配,也就是非贪婪。1.例子:从html代码中抓取隐藏域内容:[html] 正则表达式:ps:如果要在代码里面写,'"'要用斜杠转义,变成:匹配结果:(1).要最小化匹配->非贪婪setMi
阅读全文
摘要:上一篇文章http://www.2cto.com/kf/201203/124791.html主要介绍了Qt网络编程的GET方式,这里再说一下POST方式。首先说一下自己的环境: 主机:Win7;Web服务器:TomCat v7.x;数据库服务器:MySQL v5.x。 主要是用Qt实现登录验证,后台使用servlet响应登录请求,查询后台数据库,是否为合法用户。相信大家明白了吧!我实现的就是客户端发出请求,服务器端在数据库中进行查询,如果查找到,则返回用户信息,如果没有找到,则返回0,首先贴一下效果图: 1、在浏览器中测试:2、在Qt客户端中测试:这里贴一下Qt客户端的代码,服务器端的代码可详
阅读全文
摘要:看了两天的Qt网络编程,其实主要就是看了看QNetworkAccessManager、QNetworkRequest和QNetworkReply这三个类的主要内容。在之前,Qt网络编程主要是使用QHttp等类,但是现在在帮助手册中这些类已经标记为过时的,所以,现在用Qt编写网络程序最好还是使用上面的三个类,之前也说过,对于一个应用程序来说,一个QNetworkAccessManager已经足够了。不知道你有没有通过名字看出这三个类的联系呢?这里再贴一下三个类的官方说明,加强印象,也有助于大家对照接下来的示例看。QNetworkAccessManagerQNetworkRequestQNetwo
阅读全文
摘要:方法1----跟vc中差不多先添加几个私有成员保存系统随机分配的定时器编号;添加定时器slot,某个定时器超时时系统自动去执行这个函数。[cpp]view plaincopyprivate:intid1,id2,id3;privateslots:voidtimerEvent(QTimerEvent*);在需要的时候启动定时器[cpp]view plaincopyid1=startTimer(1000);//其返回值为timerIdid2=startTimer(5000);id3=startTimer(10000);实现定时器slot[cpp]view plaincopyvoidMainWind
阅读全文
摘要:[cpp]view plaincopy#includeqDebug()<<"hello";
阅读全文
摘要:像QQ那样,当有很多用户,发送的大部分都是短消息,要求能及时响应,并且对安全性要求不是很高的情况下使用UDP协议。发送(客户请求发送数据)很简单,仅需QUdpSocket 的writeDatagram函数即可[cpp]view plaincopyvoidWidget::on_pushButton_clicked(){QUdpSocket*sender;sender=newQUdpSocket(this);QByteArraydatagram="helloworld!";sender->writeDatagram(datagram.data(),datagram.siz
阅读全文
摘要:先看一下QList类[cpp]view plaincopyvoidMainWindow::on_pushButton_3_clicked(){QListlist_int;list_intlist_str;list_str is represented as an array of pointers to items of type T. If T is itself a pointer type or a basic type that is no larger than a pointer, or if T is one of Qt'sshared classes, then QLi
阅读全文
摘要:四十七、Qt网络(七)TCP(一)TCP即Transmission Control Protocol,传输控制协议。与UDP不同,它是面向连接和数据流的可靠传输协议。也就是说,它能使一台计算机上的数据无差错的发往网络上的其他计算机,所以当要传输大量数据时,我们选用TCP协议。TCP协议的程序使用的是客户端/服务器模式,在Qt中提供了QTcpSocket类来编写客户端程序,使用QTcpServer类编写服务器端程序。我们在服务器端进行端口的监听,一旦发现客户端的连接请求,就会发出newConnection()信号,我们可以关联这个信号到我们自己的槽函数,进行数据的发送。而在客户端,一旦有数据到来
阅读全文
摘要:tcpSender(客户端无QTcpServer)[cpp]view plaincopyprivate:QTcpSocket*tcpClient;QFile*localFile;//要发送的文件qint64totalBytes;//数据总大小qint64bytesWritten;//已经发送数据大小qint64bytesToWrite;//剩余数据大小qint64loadSize;//每次发送数据的大小QStringfileName;//保存文件路径QByteArrayoutBlock;//数据缓冲区,即存放每次要发送的数据privateslots:voidsend();//连接服务器void
阅读全文
摘要:最近由于要做一些关于QT方面的东西,需要访问网络,利用HTTP协议。刚刚好QT里实现了HTTP协议,即QHttp类,学习一下应该可以排上用场。但是QT Assistant上说:The class works asynchronously, so there are no blocking functions.也就是说这个类里面的所有的函数都是异步的,不会阻塞。当你向服务器发送了一个request后,函数立即返回,不等服务器返回response,也不管结果是成功还是失败。在发送请求后,会触发一系列事件:requestStarted(2)stateChanged(Connecting)stateC
阅读全文
摘要:具体可参见qt下的例子-webkit\previewer通过webview->setHtml(string);即可加载显示网页信息另外通过QWebFrame* frame = webview->page()->mainFrame();即获取当前网页源码感觉QWebView使用很方便的,只不过QWebkit.dll大小为11.5m太夸张了.
阅读全文
摘要: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编程
阅读全文
摘要:QPrinter printer(QPrinter::HighResolution); printer.setOutputFormat(QPrinter::PdfFormat); QString name = ui.line->text(); printer.setOutputFileName(pdf); ui.text->document()->print(&printer);很简单 不过貌似没有保存为doc文档的接口
阅读全文
摘要:QT附带的例子比较好:classHttpWindow:publicQDialog{Q_OBJECTpublic:HttpWindow(QWidget*parent=0);voidstartRequest(QUrlurl);privateslots:voiddownloadFile();voidcancelDownload();voidhttpFinished();voidhttpReadyRead();voidupdateDataReadProgress(qint64bytesRead,qint64totalBytes);voidenableDownloadButton();voidslotA
阅读全文
摘要:在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
阅读全文
摘要:前面分析(一)之前没有看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
阅读全文
摘要:3、读取信息在QAbstractSocket中,有两个成员是收发数据用的:readData()、writeData()readData()有两种读取方式:有缓冲和无缓冲方式。基本原理是一致的,简单其见只分析无缓冲直接读取方式。qint64 QAbstractSocket::readData(char *data, qint64 maxSize){ Q_D(QAbstractSocket); if (d->socketEngine && !d->socketEngine->isReadNotificationEnabled() && d->
阅读全文