Mingz技术博客

...

导航

2013年7月24日 #

用QT做的一个基本的Rss阅读器

摘要: 之前一直用的是Liferea。个人觉得不是很好。不喜欢的地方有三点:1.经常不响应。这个不知道是为什么,经常卡住。2.我需要的只是每天能看到更新的新闻。感觉设置的很多功能是我永远也用不到的。3.界面。看新闻的是,我更希望的是它给我的是一个新闻的列表,像谷歌阅读器那样,然后我选择自己喜欢的去全文阅读。而不是像它这样在一个界面上只给文章内容很小的地方,看这感觉总觉得缺了点什么。先在用的是google reader,虽然速度有时慢了点,但还是很值得的。刚开始也想自己做一个,不过当时太忙了,做了一半就放下了,现在也懒得做下去了,不过主要的功能都实现了,虽然看起来很难看。记录一下当时做的思路。当时想做的 阅读全文

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

QT 线程池 + TCP 小试(三)实现最终功能

摘要: 有了TCP、线程池,我们就可以把他们连接起来。使用最简单的 QMainWindow吧,设计个UI,而后,创建我们的线程池、Service,并把TcpService 的数据接收信号与线程池的数据处理信号连接起来。 为了模拟处理任务,我们简单的设计一个转换大小写字符的函数作为处理过程的模拟,这样有利于在超级终端调试、模拟。[cpp]#ifndef MYTASKITEM_H#define MYTASKITEM_H#include "qghthreadtaskitem.h"class MyTaskItem : public QGHThreadTaskItem{ Q_OBJECTpu 阅读全文

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

Qt下QThread用法学习之多线程

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

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

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) 编辑

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 阅读(1085) 评论(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 阅读(536) 评论(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 阅读(464) 评论(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 阅读(342) 评论(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 阅读(955) 评论(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 阅读(567) 评论(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 阅读(759) 评论(0) 推荐(0) 编辑