02 2017 档案
qt检测网络连接状态【只能检测和路由器的连接,不能测试到外网的连接】
摘要:#include <QCoreApplication>#include <QDebug>#include <QTextStream>#include <QDir>#include <QFile>#include <QList>#include <QThread>#include <QtNetwork 阅读全文
posted @ 2017-02-28 16:31 苦涩的茶 阅读(1112) 评论(0) 推荐(0)
Ubuntu中基于QT的系统网线连接状态的实时监视
摘要:1.必要准备 需包: #include <QNetworkInterface> 2.实现获取当前的网线连接状态 以下是自己在网络上搜到的一个解决方法,且没有加入iface.flags().testFlag(QNetworkInterface::IsRunning) 这一逻辑判断,经测试实时性极不可靠 阅读全文
posted @ 2017-02-28 16:25 苦涩的茶 阅读(856) 评论(0) 推荐(0)
Qt之QNetworkInterface
摘要:简述 QNetworkInterface类负责提供主机的IP地址和网络接口的列表。 QNetworkInterface表示了当前程序正在运行时与主机绑定的一个网络接口。每个网络接口可能包含0个或多个IP地址,每个IP地址都可选择性地与一个子网掩码和/或一个广播地址相关联。这样的列表可以通过addre 阅读全文
posted @ 2017-02-28 15:32 苦涩的茶 阅读(7205) 评论(0) 推荐(0)
Qt实现探测当前有没有网络连接(Wi-Fi)——QNetworkConfigurationManager.isOnline()
摘要:1、只需要探测当前有没有连上Wi-Fi(不用获取网络状态),可以调用<QNetworkConfigurationManager>类。 2、需要探测当前网络有没有数据来往,可以采用以下方法: 1:先声明一个槽: 2:在.cpp文件里实现这个槽函数。 3:若要检测有没有数据,则如下调用即可。 该方法的原 阅读全文
posted @ 2017-02-28 14:14 苦涩的茶 阅读(2589) 评论(0) 推荐(0)
查看和调试Qt源码
摘要:简述 在调试程序的时候,有时需要调试进入 Qt 源码,这不仅有利于我们了解内部实现机制,而且对于解决一些隐蔽性问题很有帮助。 都知道 F11 是“单步进入”,可是在调试的过程中,按下 F11 却无法进入。有人说需要静态编译 Qt 才可以,其实不然,只需要简单的几个配置就可以搞定。 简述 Qt 版本及 阅读全文
posted @ 2017-02-27 15:03 苦涩的茶 阅读(1829) 评论(0) 推荐(0)
Qt之QLocalServer
摘要:简述 QLocalServer提供了一个基于本地socket的server。 QLocalServer可以接受来自本地socket的连接。通过调用listen(),让server监听来自特定key的连接。 调用nextPendingConnection()来接受一个挂起(等待)的连接作为一个已连接的 阅读全文
posted @ 2017-02-27 15:00 苦涩的茶 阅读(3458) 评论(0) 推荐(0)
Qt之QLocalSocket
摘要:简述 QLocalSocket类提供了一个本地socket。 在Windows中,这是一个命名管道;在Unix中,这是一个本地网域socket。 如果发生错误,socketError()会返回错误的类型,errorString()则返回人类可读的错误描述。 虽然QLocalSocket是一个事件循环 阅读全文
posted @ 2017-02-27 14:58 苦涩的茶 阅读(3004) 评论(0) 推荐(0)
10、QT分析之WebKit
摘要:该文章整理自 网易博客 http://blog.163.com/net_worm/blog/static/12770241920101831312381/ 转载请注明出处 WebKit是QT4新整合的第三方构件。按照惯例动手分析之前,先了解大概 WebKit由三个模块组成:JavaScriptCor 阅读全文
posted @ 2017-02-27 14:52 苦涩的茶 阅读(1080) 评论(0) 推荐(0)
9、Qt 事件处理机制
摘要:原文地址:http://mobile.51cto.com/symbian-272812.htm 在Qt中,事件被封装成一个个对象,所有的事件均继承自抽象类QEvent. 接下来依次谈谈Qt中有谁来产生、分发、接受和处理事件。 本篇来介绍Qt 事件处理机制。深入了解事件处理系统对于每个学习Qt人来说非 阅读全文
posted @ 2017-02-27 14:49 苦涩的茶 阅读(616) 评论(0) 推荐(0)
8、QObject类 moc处理后代码
摘要:QObject在QT中是所有类的基类,经过MOC处理后代码如下 之所以贴出这段代码,是因为很多流程追踪到最后一些关键性函数都是出自这个类 源码 4.8.6 MOC版本 63 仅供参考,做一些深层次的分析 转自:http://www.cnblogs.com/lfsblack/p/5319437.htm 阅读全文
posted @ 2017-02-27 14:48 苦涩的茶 阅读(319) 评论(0) 推荐(0)
7、Qt MetaObject System详解
摘要:网上的资源比较乱,该文章整理自地址:http://www.xuebuyuan.com/735789.html Qt meta-object系统基于三个方面: 1、QObject提供一个基类,方便派生类使用meta-object系统的功能; 2、Q_OBJECT宏,在类的声明体内激活meta-obje 阅读全文
posted @ 2017-02-27 14:47 苦涩的茶 阅读(487) 评论(0) 推荐(0)
6、Qt Meta Object system 学习
摘要:原文地址:http://blog.csdn.net/ilvu999/article/details/8049908 使用 meta object system 继承自 QOject 类定义中添加 Q_OBJECT 宏 使用 moc 程序对包含该宏的文件进行处理 采用 qmake 进行处理时,如果头文 阅读全文
posted @ 2017-02-27 14:45 苦涩的茶 阅读(549) 评论(0) 推荐(0)
3、QT分析之消息事件机制
摘要:原文地址:http://blog.163.com/net_worm/blog/static/127702419201001432028526/ 上回我们分析到QPushButton的初始化,知道了Windows的窗口注册和消息处理函数QtWndProc。 跳过test.cpp中的其他语句,我们先分析 阅读全文
posted @ 2017-02-27 14:43 苦涩的茶 阅读(881) 评论(0) 推荐(0)
2、QT分析之QPushButton的初始化
摘要:原文地址:http://blog.163.com/net_worm/blog/static/127702419201001003326522/ 在简单的QT程序的第二行,声明了一个QPushButton的对象。先简单看看其初始化过程。 QPushButton的类继承关系为: QPushButton的 阅读全文
posted @ 2017-02-27 14:42 苦涩的茶 阅读(895) 评论(0) 推荐(0)
1、QT分析之QApplication的初始化
摘要:原文地址:http://blog.163.com/net_worm/blog/static/1277024192010097430321/ 在开始分析之前交代一下,一是分析的QT在Window平台实现(其它OS类似);二、分析的手段为看源码+单步跟踪。有时候会让编译器产生预编译后的输出(使用-E参数 阅读全文
posted @ 2017-02-27 14:41 苦涩的茶 阅读(1296) 评论(0) 推荐(0)
4、QT分析之调试跟踪系统
摘要:原文地址:http://blog.163.com/net_worm/blog/static/127702419201002004518944/ 在我们前面的分析中,经常看到qWarning()和qDebug()之类的调用。今天深入的分析QT的调试跟踪系统。 我们先看QDebug.h中的宏定义: 1 阅读全文
posted @ 2017-02-27 14:38 苦涩的茶 阅读(562) 评论(0) 推荐(0)
5、QT分析之网络编程
摘要:原文地址:http://blog.163.com/net_worm/blog/static/127702419201002842553382/ 首先对Windows下的网络编程总结一下: 如果是服务器,其WinSDK调用分别为: 1 WSAStartup() -> socket() -> htons 阅读全文
posted @ 2017-02-27 14:36 苦涩的茶 阅读(2409) 评论(0) 推荐(0)
QIODevice (Qt中所有 I/O devices 的基类,QFile,QBuffer,QTcpSocket等)
摘要:QIODevice是所有Qt I/O设备的基类,它提供了对支持块读写设备(例如QFile,QBuffer,QTcpSocket)的通用实现和抽象接口。QIODevice是一种抽象,不能被实例化,但是,利用其提供的通用接口可以实现设备无关的I/O特性。 在访问设备前,必须首先使用open()函数打开并 阅读全文
posted @ 2017-02-27 14:29 苦涩的茶 阅读(2481) 评论(0) 推荐(0)
Qt 菜鸟的坑 QAbstractSocket::isValid()
摘要:我曾经多次在 Qt socket 编程中使用 tcpSocket.isValid 来判断我当前的连接是否可用,最近写程序时才发现此法并不妥当。 bool QAbstractSocket::isValid() const Returns true if the socket is valid and 阅读全文
posted @ 2017-02-27 14:20 苦涩的茶 阅读(727) 评论(0) 推荐(0)
qt之QAbstractSocket
摘要:这QAbstractSocket 类提供了整个socket的类型,是QTcpSocket和QUdpSocket的基类 创建一个本体套接字,可以调用QAbstractSocket 和 setSocketDescriptor()去包裹一个本地套接字 这个类竟可能的联合了TCP和UDP,尽管UDP是不可靠 阅读全文
posted @ 2017-02-27 14:18 苦涩的茶 阅读(5769) 评论(0) 推荐(1)
Qt的一些鲜为人知但是非常有用的小功能
摘要:1. Q_GADGET:不需要从QObject继承就可以使用Qt的Meta Object功能 2. Q_ENUMS:对枚举对象进行反射(reflection) 3. Q_SIGNAL:不需要signals关键字就可以将一个函数指定为singal函数 4. Q_SLOT:不需要slots关键字就可以将 阅读全文
posted @ 2017-02-27 14:07 苦涩的茶 阅读(1370) 评论(0) 推荐(0)
关于使用QTcpSocket的一些总结
摘要:QTcpSocket类的方法connectToHost会泄露内存,即使把调用这个方法的QTcpSocket实例delete掉,内存也不会释放!反复connectToHost会导致段错误,十分危险。必须控制connectToHost的使用次数! 连接服务器 m_tcpSocket->connectTo 阅读全文
posted @ 2017-02-27 14:03 苦涩的茶 阅读(14279) 评论(0) 推荐(1)
Qt QTcpSocket 对连接服务器中断的不同情况进行判定
摘要:简述 对于一个C/S结构的程序,客户端有些时候需要实时得知与服务器的连接状态。而对于客户端与服务器断开连接的因素很多,现在就目前遇到的情况进行一下总结。 分为下面六种不同情况 同时对于以上六种情况又分为连接服务器之前和连接上服务器之后,下面就分别对不同的情况进行分析。 开始连接服务器之前 1、 客户 阅读全文
posted @ 2017-02-27 13:34 苦涩的茶 阅读(9243) 评论(0) 推荐(0)
C++头文件的工作原理
摘要:一、C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。C+ +语言支持“分别编译”(separate compilation)。也就是说,一个 阅读全文
posted @ 2017-02-21 17:02 苦涩的茶 阅读(631) 评论(0) 推荐(0)
深入理解include预编译原理
摘要:你了解 #include 某个 .h 文件后,编译器做了哪些操作么? 你清楚为什么在 .h文件中定义函数实现的话需要在函数前面加上 static 修饰么?你知道 #ifndef……#define……#endif 这种防止头文件重复包含的精髓所在么?本文就是来探讨这些问题,并给出我的理解和思考,欢迎大 阅读全文
posted @ 2017-02-21 12:34 苦涩的茶 阅读(4025) 评论(0) 推荐(0)
宏定义的优缺点
摘要:宏定义的优缺点 下面是别人文章关于这个问题的讨论,转载》 当时没答出来,只知道如果某个常量或者函数名很长的时候可以用宏定义做替换,这样的话程序也会比较美观一点,可读性也大大增强了。 其实在用VC编程的时候就会遇到很多宏定义,尤其是类似“LONG,LPCTSTR”等等之类的,它们属于微软的自定义类型, 阅读全文
posted @ 2017-02-21 11:17 苦涩的茶 阅读(3834) 评论(0) 推荐(0)
Qt之创建自定义类型
摘要:摘要: 简述 当使用Qt创建用户界面时,特别是那些带有特殊控制和特征的界面时,开发者通常需要创建新数据类型来扩展或替换Qt现有的的值类型集合。 标准类型,比如:QSize、QColor和QString都可以被存储到QVariant对象中,在基于QObject的类中可用作属性的类型,并且可以在信号-槽 阅读全文
posted @ 2017-02-21 10:45 苦涩的茶 阅读(8754) 评论(0) 推荐(0)
QT 信号槽connect中解决自定义数据类型或数组作为函数参数的问题——QT qRegisterMetaType 注册MetaType——关键:注册自定义数据类型或QMap等容器类
摘要:一般情况下信号槽直接连接方式不会出现问题,但是如果信号与槽在不同线程或Qt::QueuedConnection方式连接,可能会在连接期间报以下类似问题,如: QObject::connect: Cannot queue arguments of type 'ThreadSignal' (Make s 阅读全文
posted @ 2017-02-21 09:53 苦涩的茶 阅读(6343) 评论(0) 推荐(0)
QTcpSocket 及 TCP粘包分析
摘要:这两天用Qt简单的实现一个tcp多线程client,在此记录下知识。 一、长连接与短连接 1、长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。 2、短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。 阅读全文
posted @ 2017-02-07 16:54 苦涩的茶 阅读(4465) 评论(1) 推荐(0)


// 1.生成目录索引列表