互联网挖掘者
简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用。对于一般的开发人员而言,在Win32 OpenSSL上下载已经编译好的OpenSSL库是省力省事的好办法。对于高级的开发用户,可能需要适当的修改或者裁剪OpenSSL,那么编译它就成为了一个关
简述 使用QPainter绘制图形或者图像时,在重叠区域使用组合模式(Composition_mode)。在绘图设备上通过组合模式使用QImage时,必须使用Format_ARGB32_Premultiplied和Format_ARGB32格式之一。 简述 效果 源码 更多参考 效果 源码 ... painter.drawImage(
简述 QSpacerItem类为布局提供了一个空白区。 简述 比对 使用 效果 源码 效果 源码 比对 通常情况下,不需要直接使用这个类,Qt内建布局管理器在操控空白区时提供以下功能: 类 函数 QHBoxLayout addSpacing()、addStretch()、insertSpacing()、insertStre
简述 QStackedWidget继承自QFrame。 QStackedWidget类提供了多页面切换的布局,一次只能看到一个界面。 QStackedWidget可用于创建类似于QTabWidget提供的用户界面。 简述 使用 效果 源码 接口 信号 共有槽函数 总结 使用 一个QStackedWidget可以用一些子页面进行填充。 效果
简述 OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 简述 下载安装 使用 更多参考 下载安装 进入Win32 OpenSSL下载页面,选择适合自己的版本进行下载。 下载完成之后进行安装,我选择的目录为D:\Program Files\Open
简述 QStackedLayout继承自QLayout。 QStackedLayout类提供了多页面切换的布局,一次只能看到一个界面。 QStackedLayout可用于创建类似于QTabWidget提供的用户界面。也有建立在QStackedLayout之上的便利类QStackedWidget。 简述 使用 效果 源码 接口 信号 共有槽函数 总结
简述 QFormLayout管理输入型控件和关联的标签组成的那些Form表单。 QFormLayout是一个方便的布局类,其中的控件以两列的形式被布局在表单中。左列包括标签,右列包含输入控件,例如:QLineEdit、QSpinBox等。 简述 使用 常用接口 总结 使用 我们可以通过addRow(const QString &labelTe
简述 QGridLayout:格栅布局,也被称作网格布局(多行多列)。 栅格布局将位于其中的窗口部件放入一个网状的栅格之中。QGridLayout需要将提供给它的空间划分成的行和列,并把每个窗口部件插入并管理到正确的单元格。 栅格布局是这样工作的: 它计算了位于其中的空间,然后将它们合理的划分成若干个行(row)和列(column),并把每个由它管理的窗口部件放置在
简述 QBoxLayout可以在水平方向或垂直方向上排列控件,由QHBoxLayout、QVBoxLayout所继承。 QHBoxLayout:水平布局,在水平方向上排列控件,即:左右排列。 QVBoxLayout:垂直布局,在垂直方向上排列控件,即:上下排列。 通过查看源码,我们可以发现,水平布局、垂直布局除了构造时的方向(LeftToRight、TopToBott
简述 手动布局,可以实现和水平布局、垂直布局、网格布局等相同的效果,也可实现属于自己的自定义布局,当窗体缩放时,控件可以随之变化。 其对于坐标系的建立有严格要求,纯代码思维,使用复杂,不易维护,所以一般不建议使用。 下面我们以简单的例子来讲解如何使用。 简述 事件 垂直布局 简略图 效果 源码 水平布局 效果 源码 总结 事件 在Q
简述 QBorderLayout,顾名思义-边框布局,实现了排列子控件包围中央区域的布局。 具体实现要求不再赘述,请参考前几节内容。 简述 实现 效果 源码 使用 实现 QBorderLayout主要采用QLayout和QWidgetItem实现,而窗口使用了QWidget,中央窗体使用QTextBrowser,四周以QLabel排列。
简述 QFlowLayout,顾名思义-流布局,实现了处理不同窗口大小的布局。根据应用窗口的宽度来进行控件放置的变化。 具体实现要求不再赘述,请参考前两节内容。 简述 实现 效果 源码 实现 QFlowLayout主要采用QLayout和QWidgetItem实现,而窗口使用了QWidget和QPushButton。 效果 源码 QF
简述 手动布局另一种方法是通过继承QLayout类编写自己的布局管理器。 下面我们详细来举一个例子-QCardLayout。它由同名的Java布局管理器启发而来。也被称之为卡片布局,每个项目偏移QLayout::spacing()。 简述 定义 实现 效果 源码 定义 编写自己的布局,必须定义如下: 一种存储布局处理项目的数据结构,每个项目都是
简述 QAbstractButton类是按钮部件的抽象基类,提供了按钮所共有的功能。 QAbstractButton类实现了一个抽象按钮,并且让它的子类来指定如何处理用户的动作,并指定如何绘制按钮。 QAbstractButton提供了点击和勾选按钮。QRadioButton和QCheckBox类只提供了勾选按钮,QPushButton和QToolButton提供了点击
简述 HTTP Analyzer是一款实时分析HTTP/HTTPS数据流的工具。它可以实时捕捉HTTP/HTTPS协议数据,可以显示许多信息(包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的URL地址),可以提供缓冲区信息、清理对话内容、HTTP状态信息和其他过滤选项。同时还是一个非常有用的分析、调试和诊断的开发工具。 HTTP Analyzer可以集成
简述 QNetworkProxy类提供了一个网络层代理。 QNetworkProxy提供了配置网络层代理支持Qt网络类的方法。目前支持的类有QAbstractSocket、QTcpSocket、QUdpSocket、QTcpServer和QNetworkAccessManager。 简述 介绍 网络请求 设置代理 效果 源码 介绍 代理被设
简述 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie、html、js、css等文件,这些都可以让你胡乱修改的意思)。Fiddler要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。 简述 介绍 工作原理 同类
简述 Postman是一个Chrome扩展,提供功能强大的Web API & HTTP请求调试。它能够发送任何类型的HTTP 请求(GET、HEAD、POST、PUT..),附带任何数量的参数+headers。 支持不同的认证机制(basic、digest、OAuth),接收到的响应语法高亮(HTML、JSON或XML)。Postman能够保留历史的请求,这样我们
简述 关于简笔画的介绍很多,有动物、水果、蔬菜、交通工具等,通常会对绘制一步步进行拆分、组合。然后绘制为我们想要的结果。 下面来介绍另外的一个种类:昆虫类-卡通蚂蚁。 简述 绘制 效果 源码 绘制 效果 具体的效果如下所示,我们可以再进行更好的完善。 源码 主要分为以下三部: 绘制屁股 绘制肚子 绘制头部 注意:绘制的时候,由于
简述 Summer is coming…我们呢,为大家准备了丰盛的佳果-西瓜,清爽解渴,甘味多汁。 一笔一划学简笔画,分分钟让你掌握一门新技能,下面我们来绘制一个“盛夏之王”-西瓜,赶快一起来试试吧。 简述 简笔画 绘制 效果 源码 简笔画 我们先简单看看西瓜的基本组成,一步步进行拆分、组合。 绘制 效果 具体的效果如下所示,我们可以
简述 综合前面对二维绘图的介绍,想必我们对一些基本绘图有了深入的了解,下面我们来实现一些漂亮的图形绘制。 简述 圆形 效果 源码 弧形 效果 源码 文本 效果 源码 旋转 效果 源码 圆形 经常地,我们会在网上看到一些列的抽奖活动,里面就有圆盘抽奖,是不是有点手痒了O(∩_∩)O~ 效果 源码 void M
简述 QPainterPath 类(绘图路径)提供了一个容器,用于绘图操作,可以创建和重用图形形状。 绘图路径是由许多图形化的构建块组成的对象,例如:矩形、椭圆、直线和曲线。构建块可以加入在封闭的子路径中,例如:矩形或椭圆。封闭的路径的起点和终点是一致的,或者他们可以作为未封闭的子路径独立存在,如:直线和曲线。 QPainterPath 可以被填充、描绘轮廓、裁剪。要为
简述 前面讲解了 Qt 图形的基本绘制,包括: 直线、弧线、矩形、椭圆、图片、多边形,以及其它一些高级用法,比如:渐变、转换等。 本节主要分享文本的绘制。主要通过 QPainter 的 darwText() 函数来实现,里面包含多个重载函数,其中,可以通过 QRect 来指定绘制的区域,也可以通过 QPoint 来指定绘制的起始点。 QFont 类可以辅助设置文本的大小
简述 QTransform 用于指定坐标系的 2D 转换 - 平移、缩放、扭曲(剪切)、旋转或投影坐标系。绘制图形时,通常会使用。 QTransform 与 QMatrix 不同之处在于,它是一个真正的 3x3 矩阵,允许视角转换,QTransform 的 toAffine() 方法允许将 QTransform 转换到 QMatrix。如果视角转换已在矩阵指定,则转换将导
简述 QGradient 可以和 QBrush 组合使用,来指定渐变填充。 Qt 目前支持三种类型的渐变填充: QLinearGradient:显示从起点到终点的渐变 QRadialGradient:以圆心为中心显示渐变 QConicalGradient:围绕一个中心点显示渐变 渐变类型可以使用 type() 函数来检索,类型中的每一个都是 QGradient 的子
简述 Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice 和 QPaintEngine 这三个类。 QPainter 用于执行绘图操作,其提供的 API 在 GUI 或 QImage、QOpenGLPaintDevice、QWidget 和QPaintDevice 显示图形(线、
简述 Python 是跨平台的,它可以运行在 Windows、Mac OS X 和各种 Linux/Unix 系统上。 开始学习 Python 编程,首先需要搭建 Python 环境。完成后,会得到 Python 解释器(负责运行 Python 程序的),一个命令行交互环境,还有一个简单的集成开发环境。 可以通过终端窗口输入 python 命令来查看本地是否已经安装 P
简述 关于“模式”和“非模式”对话框,相信大家都比较熟悉,但其中有一个可能很多人都比较陌生,介于两者之间的状态,我们称之为“半模式“。 简述 模式对话框 描述 效果 源码 非模式对话框 描述 效果 源码 半模式对话框 描述 效果 源码 更多参考 模式对话框 描述 阻塞同一应用程序中其它可视窗口输入的对话框。模式对话框有自己的事件循环
简述 经常使用企鹅的小伙伴一定对登录失败的提示框很熟悉,主要涉及窗口透明并添加图标、提示信息、关闭按钮的显示等。 我们可以利用QWidget创建一个提示框,然后通过样式设置我们想要的效果。 简述 效果 源码 样式 效果 源码 QMessageWidget.h #ifndef MESSAGE_WIDGET #define MESSAGE_WID
简述 关于gif的使用在实际项目中我用的并不多,因为我感觉瑕疵挺多的,很多时候锯齿比较严重,当然与图存在很大的关系。 关于生成gif的方法可以提供一个网站preloaders,基本是可以满足需求的。 简述 效果 源码 更多参考 效果 由于录制程序的原因,引起gif效果不清晰,可忽略。 源码 通过使用QMovie来设置动画、可以调用se
简述 很早以前在网上看到一个纯代码实现的旋转动画感觉效果很不错,分享给大家。不得不说,条条大道通罗马,我们需要更多地创造。。。 详见:QProgressIndicator 简述 效果 源码 使用 更多参考 效果 由于录制程序的原因,引起gif效果不清晰,可忽略。 源码 QProgressIndicator.h #ifndef Q
简述 上节讲述了关于QPropertyAnimation实现等待提示框的显示,本节我们使用另外一种方案来实现-使用定时器QTimer,通过设置超时时间定时更新图标达到旋转效果。 简述 效果 资源 源码 更多参考 效果 资源 需要几张不同阶段的图标进行切换,这里使用8张。 源码 QTimer通过setInterval设置100毫
简述 之前分享过QLabel可以通过QMovie播放gif图片,可以实现等待提示框,今天主要使用动画QPropertyAnimation来进行实现! 数据加载的时候,往往都需要后台线程进行数据请求,而前台需要进行友好性的交互,防止无休止的等待,或者进程卡死。 简述 效果 资源 源码 分析 衍伸 更多参考 效果 由于录制程序的原因,引起gif效果不
简述 衍伸前面的章节,我们对QTableView实现了数据显示、自定义排序、显示复选框、进度条等功能的实现,本节主要针对自定义按钮进行讲解,这节过后,也希望大家对自定义有更深入的了解,在以后的功能开发过程中,相信无论遇到什么样式形式,我们都可以很好地实现。 简述 效果 QStyledItemDelegate 源码 衍伸 效果 QSty
简述 对于QTableView中的显示,我们前面介绍过很多种,其中包括:文本、进度条、复选框等,今天我们介绍一下关于富文本的显示。 可能绝大多数小伙伴会通过QAbstractTableModel中的data来实现,可是现实告诉我们,那是行不通的,那么我们如何去显示呢?请看正文。 简述 效果 源码 分析 效果 源码 下面我们使用QAbstrac
简述 在前面,我们分享过关于三角的实现方式,主要根据border属性来设置,下面我们来实现上、下、左、右各种不同颜色的三角。 简述 实现 效果 源码 实现 效果 源码 <!DOCTYPE html> <html> <head> <style type='text/css'> /*
简述 前几节中分享过关于自定义排序的功能,貌似我们之前的内容已经可以很好地解决排序问题了,但是,会由此引发一些很难发现的问题。。。比如:获取QModelIndex索引错误。 下面,我们先来实现一个整行选中的效果。 简述 错误处理 效果 源码 分析 正常处理 效果 源码 错误处理 效果 下面是一个非正常的的效果,选中当前行会造成更新错误,
简述 CSS3中transition属性定义了过渡,我们可以使用它来辅助我们实现一个边框样式的动画过渡。 简述 transition 定义和用法 语法 实现 效果 源码 transition 定义和用法 transition 属性是一个简写属性,用于设置四个过渡属性: transition-property transition-
简述 QLCDNumber控件用于显示一个LCD数字。 它可以显示几乎任意大小的数字。可以显示十进制、十六进制、八进制或二进制数。很容易使用display()槽连接到数据源,这个槽可以被任何五个参数类型的数据源重载。 当显示范围以外的数据时,就会发射overflow()信号。返回可以通过setDigitCount()来设置,但是setSmallDecimalPoint(
简述 在之前的章节中分享过关于QHeaderView表头排序、添加复选框等内容,相信大家模型/视图、自定义风格有了一定的了解,下面我们来分享一个更常用的内容-自定义进度条。 实现方式: 从QAbstractTableModel中设置对应的进度数据,因为我们需要显示进度条,而不是直接显示进度文本,所以原始的数据不需要直接显示在界面上,所以不需要使用Qt::Display
简述 <div>用来定义文档中的分区或节,<span>用来组合文档中的行内元素。我们可以通过<div>和 <span>将HTML元素组合起来。 下面我们来实现一个可收缩的底部边框。 简述 最终效果 组合 效果 源码 源码 最终效果 我们先看一下最终要实现的效果。 要实现这样一个效果,首先我们
简述 clip-path属性指定一个应用到元素上的剪切路径。应用在SVG中<clipPath>元素上的属性值可以完全运用在clip-path属性上。还可以使用CSS Shapes模块中的基本形状来定义剪切路径。这些形状可以使用形状函数来创建。这些形状态函数包括polygon()、circle()、inset()(用来定义嵌入的矩形)和ellipse()。 使用
简述 网页上经常会出现一些弧形的阴影效果,看起来很漂亮,下面我们来讲述下如何用CSS来实现一个弧形阴影。 简述 阴影 效果 注释 标题 效果 源码 合并 效果 源码 阴影 效果 首先实现一个简单的阴影效果 <!DOCTYPE html> <html> <head> <style t
简述 QLabel提供了一个文本或图像的显示,没有提供用户交互功能。 一个QLabel可以包含以下任意内容类型: 内容 设置 纯文本 使用setText()设置一个QString 富文本 使用setText()设置一个富文本的QString 图像 使用setPixmap()设置一个图像 动画 使用setMovie()设置一个动画
简述 在前面章节中我们讲述了关于Qt显示网络图片的内容,比较简单,因为图片一般都比较小,下载到本地速度比较快,所以基本不需要什么特殊处理,本节我们主要针对HTTP实现上传/下载进行详细的讲解与分享,包括:用户认证,实时获取下载大小、速度、剩余时间信息等。 首先看一下即将用到的公式: 文件剩余大小 = 文件总大小 - 文件已下载大小 平均速度 = 文件已下载大小 / 文
简述 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容需要SSL。它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。
简述 本节主要解决自定义排序衍生的第二个问题-将整形显示为字符串,而排序依然正常。 下面我们介绍三种方案: 委托绘制 用户数据 辅助列 很多人也许会有疑虑,平时都用delegate来绘制各种按钮、图标、图形等操作,它还能排序?当然,它本身是不会排序的,但他的高级用法之一就是-辅助排序。 简述 委托绘制 效果 QStyledItemDelegate 眼见不
简述 对以上节的排序,我们衍伸了两点: 把一个字符串前面的数据按照字符串比较,而后面的数据按照整形比较。 将整形显示为字符串,而排序依然正常呢。 为了分别描述,这里我们先解决问题1。 简述 效果 处理大小显示 QAbstractTableModel QSortFilterProxyModel 提示 效果 处理大小显示 // 定义GB
简述 在Windows中我们经常会遇到表头排序,比如可以对文件按照名称、修改日期、类型、大小进行排序,方便我们统一的归类查找。 Qt中,我们可以通过点击表头来对QTableView或QTreeView等一系列高级视图进行排序,对于一般的数据来说-比如:int、QString等,简单的几句代码就可以搞定,因为Qt内部做了很好的排序处理,但是一般情况下,我们需要处理一些特殊格
简述 QNetworkInterface类负责提供主机的IP地址和网络接口的列表。 QNetworkInterface表示了当前程序正在运行时与主机绑定的一个网络接口。每个网络接口可能包含0个或多个IP地址,每个IP地址都可选择性地与一个子网掩码和/或一个广播地址相关联。这样的列表可以通过addressEntries()方法获得。当子网掩码或者广播地址不必要时,可以使用a