- 博客(28)
- 收藏
- 关注
原创 Qt网络编程之QNetworkRequest和QNetworkReply实例(四)
设想有如下场景:输入若干的url,然后依次的下载并存储到文件。本案例使用QNetworkRequest和QNetworkReply。源代码如下:案例源码头文件#pragma once////////////////////////////////////////////////////////////////////////////QNetworkReply/QNetworkReques...
2018-10-02 11:22:05
10634
原创 Qt网络编程之QUdpSocket实例(三)
设想有如下场景:若干的客户端与服务器端建立连接,建立连接后,服务器端随机发送字符串给客户端,客户端打印输出。该节案例使用UDP编程。服务器端头文件#pragma once////////////////////////////////////////////////////////////////////////////UDP服务器端#include <QObject>...
2018-10-01 16:48:20
4788
1
原创 Qt网络编程之QTCPSocket和QTCPServer实例(二)
设想有如下场景:若干的客户端与服务器端建立连接,建立连接后,服务器端随机发送字符串给客户端,客户端打印输出。该节案例使用TCP编程。服务器端-单线程头文件#pragma once////////////////////////////////////////////////////////////////////////////tcp服务端-单线程处理客户端连接#include <...
2018-10-01 16:47:23
57646
4
原创 Qt网络编程概述(一)
Qt网络编程概述QtNetWork模块提供了若干类支持TCP/IP客户端服务器端的开发。有如下两类:低级网络操作:QTcpSocket/QTcpServer/QUdpSocket高级网络操作:QNetworkRequest/QNetworkReply/QNetworkAccessManagerTCP/IP详解Qt网络编程相关类类名作用QAbstractSocke...
2018-10-01 16:45:27
5643
原创 线程和并行编程之线程和QObjects(六)
QThread继承于QObject,它会发送信号标识线程的开始与结束。更有趣的是QObjects会用于多线程中,发送的信号会调用另外线程中的槽函数、发送事件给另外线程的对象。实现这种机制的基础:每个线程可以拥有独自的事件循环。对象QObject可重入QObject是可重入的。大部分非GUI类的子类,如QTimer、QTcpSocket、QUdpSocket、QProcess等也是可重入的,多线...
2018-09-25 22:22:42
383
原创 线程和并行编程之可重入和线程安全(五)
可重入和线程安全概述查看Qt的帮助文档,经常看到函数标识“可重入”和“线程安全”,这些说明了在多线程程序中是如何使用的:线程安全:函数可以被多个线程同时调用,甚至是调用方使用共享数据。因为所有对共享数据的引用是序列化的。可重入:函数可以被多个线程同时调用,但是调用方需要使用独自的数据。简述:线程安全的函数是可重入的,但是可重入的函数不一定是线程安全的。引申来说:线程安全的类:它的成...
2018-09-25 22:21:58
262
原创 线程和并行编程之线程同步(四)
线程的目的是为了并行的执行代码,有时线程需要互相等待。例如,如果两个线程同时写一个变量,执行结果是未定义的。因此对共享资源的需要进行“同步”处理。Qt提供了低级别的、高级别的机制处理线程同步。低级别的线程同步QMutex互斥量:为了访问共享资源,线程会锁定互斥量。其他的线程必须等该线程释放互斥量时,才可访问共享资源。QReadWriteLock读写锁:区分对共享数据的“读”和“写”。多个线...
2018-09-25 22:20:06
321
原创 线程和并行编程之Qt中的多线程技术(三)
Qt主要提供了如下线程相关的类:1.QThread:低级别的API(开启事件循环)QThread是Qt中所有线程控制的基础,每个线程实例代表一个线程。有如下两种实现方式:直接实例化:实例化的线程开启事件循环,允许QObject的槽函数在另外的线程中被调用。间接子类化:在启动事件循环前,初始化线程;或者不开启事件循环,直接运行代码。2.QThreadPool和QRunnable:可复用...
2018-09-25 22:19:12
4793
1
原创 线程和并行编程之线程相关类(二)
类名作用Concurrent Filter and Filter-ReduceConcurrent Map and Map-ReduceConcurrent RunQAtomicIntegerPlatform-independent atomic operations on integersQAtomicPointerTemplate clas...
2018-09-25 22:18:12
318
原创 线程和并行编程概述(一)
Qt中的线程Qt提供了平台无关的线程类,提供了一种线程安全的方式发送事件、跨线程的信号槽连接。具有如下优势:很容易开发跨平台的多线程程序;充分发挥多核处理器的优势;在不阻塞界面的情况下,执行耗时操作。总结主题本系列会从如下方面总结:线程相关类Qt中的多线程技术线程同步可重入和线程安全线程和QObjects...
2018-09-25 22:17:16
284
原创 绘图系统Paint System“一、译”
绘图系统Qt的绘图系统可以使用相同的API在屏幕或打印设备上进行绘制。总结主题1.绘图系统相关类2.绘图设备3.绘制填充4.坐标系统5.读写图片文件1.绘图系统相关类主要是通过QPainter、QPrintDevice、QPaintEngine类实现的,职责如下:QPainter:用于执行绘制操作QPaintDevice:一个抽象的二维空间QPaintEngine:...
2018-09-18 18:33:40
297
原创 动画机制The Animation Framework“一、译”
动画机制Qt的动画框架提供了一种简单的方式创建GUI动画。通过Qt的属性系统机制,该框架可灵活的使窗口控件和QObject的子类创建动画。同时,该框架也同样适用于Qt的Graphics/View图形视图框架。本文主要讲解动画框架的基础。通过使QObject的子类、图形单元项动画的基本例子,来演示如何使用。动画架构首先我们从高层上看下Qt动画的架构。如下图是动画框架的类图:...
2018-09-09 23:30:57
830
原创 图解Qt信号槽实现
信号槽实现了解如下基础组件QObject - 核心数据//QObject数据基类class Q_CORE_EXPORT QObjectData {public: virtual ~QObjectData() = 0; QObject *q_ptr; QObject *parent; QObjectList children; uint is...
2018-06-10 17:18:36
895
转载 图解Windows内存管理(转载)
进程的地址空间 windows内存安排 虚拟内存实现 该内容转自博客:https://www.cnblogs.com/5iedu/p/4846223.html。源博客写的很好~赞一个!
2018-06-09 11:07:52
282
原创 递归和循坏的区别
使用场景需要重复的多次计算相同的子问题,通常可以使用递归或者循环。递归是在一个函数内部调用自身(终止条件),循环是通过设置计算的初始值以及终止条件。优劣对比递归优点:代码整洁,简单易懂。譬如树的前序遍历、中序遍历、后序遍历等用递归实现起来很简单,但是用循环实现相对较复杂。递归缺点: 1. 时间效率低。函数调用时,需要在线程栈中分配空间保存参数、临时变量、返回地址等,而往栈中
2018-01-28 17:15:41
581
原创 Qt元对象系统
产生背景 Qt的元对象系统为对象间的通信提供了信号槽机制、运行时类型信息、动态属性系统。核心内容 Qt的元对象系统实现基于三方面: 1. QObject基类。未能够利用元对象系统的对象提供了一个基类。 2. Q_OBJECT宏。用于实现元对象特性,如动态属性、信号槽。 3. Meta-Object Compiler 元对象编译器。为QObject子类提供必要的代码
2018-01-03 16:46:49
460
原创 QtCore核心机制介绍
写在前面 用了一段时间Qt,熟练掌握了接口调用,但一直没有阅读源码,因此对Qt的核心机制也就一知半解。终于下定决心,阅读Qt源码,一点一点学习~ 学习优秀框架如何设计的,以此提高自身能力。开始入门 其他的Qt模块都依赖于该模块,为了包含模块类的定义,可直接 #include 核心功能 Qt向C++中添加了很多新特性: 信号槽:对象之间通信的机制 属性系统:可查询、可设计的对象系统
2018-01-01 23:32:28
1023
原创 OSG-场景动画基础知识_刚体动画
简单路径动画: 简单的路径动画不一定需要osgAnimation中丰富多彩的插值与关键帧采样机制,用户只需要输入某个对象节点在每个时刻的关键路径点、包括位置、旋转、缩放,就足以表达复杂的缸体动画形态了。AnimationPath即是满足该需求的类。类图说明: 以下是osg改功能大概类图。 简单需求样例: 平移并且旋转的牛代码使用示
2016-08-14 16:34:05
1696
原创 OSG-场景动画基础知识_类图框架
这两天学习了OSG的场景动画基础知识~整理下这部分的整体类图设计。通过类图就能明白大概的结构以及数据流动流程。
2016-08-02 13:53:32
1370
原创 OSG-简单的绘制一个坐标轴
学习了可绘制Drawable的基本知识,打算绘制一个简单的坐标轴。效果图如下:代码如下:osg::Geode* makeCoordinate(){ osg::ref_ptr pSphereShape = new osg::Sphere(osg::Vec3(0,0,0), 10.0f); osg::ref_ptr pShapeDrawable =
2016-08-01 10:22:20
5410
1
原创 OSG3.5.1 + Qt5.4.2 + VS2010 + CMake3.4.3 安装说明
最近学习OSG,安装OSG时遇到了各种问题,网上搜了很多依旧未能解决。花了很长时间研究了终于解决了~Mark之!
2016-07-15 16:48:22
1307
原创 利用Qt Undo FrameWork解决数据回滚问题(撤销恢复)
新的方现有问题可以抽象为对用户修改的数据撤销与恢复。类似问题可以用命令设计模式处理:实现这一功能的关键是将一个命令看作一个对象并记录详细内容。具体的来说,需要记录一个命令影响了系统中的那些对象,该命令修改了这些对象的那些数据成员,这些数据成员在执行命令前后的取值是什么。一旦记录了这些信息,可以撤销或重做这条命令。目前Qt Undo Framework利用了命令设计模式处理该问题。
2016-07-13 11:38:33
2226
原创 UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特
2015-03-31 20:29:43
335
转载 Learn UML with JUDE
我希望你能够使用JUDE去学习和体验UML,JUDE是一个建模工具,你可以用它去画UML。下面我会指导你通过一些实例去学习使用JUDE来画UML。一、Overview l UML and UML toolsl Description of JUDEl Installation of JUDEl Fundamental Components and
2015-03-31 19:28:14
404
原创 第二章 设计原则
2.1 单一职责原则 定义:一个类,应当只有一个引起它变化的原因,即一个类应该只有一个职责。 单一职责原则提出编写程序的标准,用“职责”和“变化原因”来衡量接口或类设计是否优良。 优点:降低类的复杂性,提高类的可读性 实例:代码稍后补充2.2 里氏替换原则 定义:所有引用基类的地方必须能
2015-03-31 19:21:44
367
原创 第一章 设计模式概述
1. 设计模式的分类 常用的设计模式可以概括为23中,按照特点可以分为三大类: 创建型 结构型 行为型1.1 创建型 定义:创建型模式是用来创建对象的模式,抽象了实力化的过程。 作用:将系统所使用的具体类的信息隐藏起来; 隐藏类的实例是如何被创建合组织的。
2015-03-30 12:52:17
364
转载 OpenGL_Qt学习笔记之_01(创建一个OpenGL窗口)
很早就想学opengl的,一直没时间,今天心血来潮初步了解了下opengl。Opengl是对2D和3D图形支持很好,有非常多的优化函数,因为opengl的主要目标是图形功能函数上,所以它对图形界面的支持并不完善。当然了,作为一个跨平台的开源库,这是能理解的,因为每个平台开发界面用的工具不同,如果它只支持其一,那么私心也太重了,还不如节省精力放在核心的代码上。Qt的UI函数很多,它的Open
2015-03-28 14:18:10
530
一款扫描PDF/图片根据指定区域批量改名、导出文字、图片分类的办公提效工具
2024-06-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人