Mingz技术博客

...

导航

2013年7月24日 #

Qt正则表达式的贪婪模式

摘要: 使用了2个正则表达式库,分别是QRegExp、pcre和pcre++。正则表达式的写法一般都是通用的,但对于贪婪匹配,不同的正则库有些不同。在pcre中,非贪婪模式是由'?'来指定的,但在QRegExp中,存在'?',为不合法的正则表达式,在QRegExp中,要使用setMinimal函数来指定贪婪算法。setMinimal函数的意思是设置最小匹配,也就是非贪婪。1.例子:从html代码中抓取隐藏域内容:[html] 正则表达式:ps:如果要在代码里面写,'"'要用斜杠转义,变成:匹配结果:(1).要最小化匹配->非贪婪setMi 阅读全文

posted @ 2013-07-24 16:52 Mingz2013 阅读(459) 评论(0) 推荐(0) 编辑

Qt网络编程之实例一GET方式

摘要: 看了两天的Qt网络编程,其实主要就是看了看QNetworkAccessManager、QNetworkRequest和QNetworkReply这三个类的主要内容。在之前,Qt网络编程主要是使用QHttp等类,但是现在在帮助手册中这些类已经标记为过时的,所以,现在用Qt编写网络程序最好还是使用上面的三个类,之前也说过,对于一个应用程序来说,一个QNetworkAccessManager已经足够了。不知道你有没有通过名字看出这三个类的联系呢?这里再贴一下三个类的官方说明,加强印象,也有助于大家对照接下来的示例看。QNetworkAccessManagerQNetworkRequestQNetwo 阅读全文

posted @ 2013-07-24 16:51 Mingz2013 阅读(418) 评论(0) 推荐(0) 编辑

Qt网络编程之实例二POST方式

摘要: 上一篇文章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客户端的代码,服务器端的代码可详 阅读全文

posted @ 2013-07-24 16:51 Mingz2013 阅读(477) 评论(0) 推荐(0) 编辑

qt4 定时器

摘要: 方法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 阅读全文

posted @ 2013-07-24 16:48 Mingz2013 阅读(208) 评论(0) 推荐(0) 编辑

qDebug()

摘要: [cpp]view plaincopy#includeqDebug()<<"hello"; 阅读全文

posted @ 2013-07-24 16:47 Mingz2013 阅读(171) 评论(0) 推荐(0) 编辑

四十五、Qt网络(五)获取本机网络信息

摘要: 先看一下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 阅读全文

posted @ 2013-07-24 16:45 Mingz2013 阅读(299) 评论(0) 推荐(0) 编辑

四十六、Qt网络(六)UDP

摘要: 像QQ那样,当有很多用户,发送的大部分都是短消息,要求能及时响应,并且对安全性要求不是很高的情况下使用UDP协议。发送(客户请求发送数据)很简单,仅需QUdpSocket 的writeDatagram函数即可[cpp]view plaincopyvoidWidget::on_pushButton_clicked(){QUdpSocket*sender;sender=newQUdpSocket(this);QByteArraydatagram="helloworld!";sender->writeDatagram(datagram.data(),datagram.siz 阅读全文

posted @ 2013-07-24 16:45 Mingz2013 阅读(415) 评论(0) 推荐(0) 编辑

qt4 tcp QTcpSocket QTcpServer 传输数据

摘要: 四十七、Qt网络(七)TCP(一)TCP即Transmission Control Protocol,传输控制协议。与UDP不同,它是面向连接和数据流的可靠传输协议。也就是说,它能使一台计算机上的数据无差错的发往网络上的其他计算机,所以当要传输大量数据时,我们选用TCP协议。TCP协议的程序使用的是客户端/服务器模式,在Qt中提供了QTcpSocket类来编写客户端程序,使用QTcpServer类编写服务器端程序。我们在服务器端进行端口的监听,一旦发现客户端的连接请求,就会发出newConnection()信号,我们可以关联这个信号到我们自己的槽函数,进行数据的发送。而在客户端,一旦有数据到来 阅读全文

posted @ 2013-07-24 16:44 Mingz2013 阅读(1299) 评论(0) 推荐(0) 编辑

qt4 tcp QTcpSocket QTcpServer 传输文件

摘要: tcpSender(客户端无QTcpServer)[cpp]view plaincopyprivate:QTcpSocket*tcpClient;QFile*localFile;//要发送的文件qint64totalBytes;//数据总大小qint64bytesWritten;//已经发送数据大小qint64bytesToWrite;//剩余数据大小qint64loadSize;//每次发送数据的大小QStringfileName;//保存文件路径QByteArrayoutBlock;//数据缓冲区,即存放每次要发送的数据privateslots:voidsend();//连接服务器void 阅读全文

posted @ 2013-07-24 16:43 Mingz2013 阅读(606) 评论(0) 推荐(0) 编辑

四十二、Qt网络(二)HTTP编程

摘要: HTTP即超文本传输协议,它是一种文件传输协议。这一节中我们将讲解如何利用HTTP从网站上下载文件。下载网页:[cpp]view plaincopyprivate:QNetworkAccessManager*manager;privateslots:voidreplyFinished(QNetworkReply*);[cpp]view plaincopyWidget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui->setupUi(this);manager=newQNetworkAccessManager(thi 阅读全文

posted @ 2013-07-24 16:41 Mingz2013 阅读(330) 评论(0) 推荐(0) 编辑