自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

转载 Qt--多线程间的互斥

一.多线程间的互斥临界资源--每次只允许一个线程进行访问的资源线程间的互斥--多个线程在同一个时刻需要访问临界资源QMute类是一把线程锁,保证线程间的互斥--利用线程锁能够保证临界资源的安全性QMutex中的关键成员函数void lock()--当锁空闲时,获取锁并继续执行;当锁被获取时,阻塞并等待释放void unlock()--释放锁(同一把锁的获取和释放必须在同一线程中成对出现 )A.生...

2019-08-20 14:57:00 268

转载 Qt--进程与线程的概念、Qt多线程编程、多线程间的同步

一.进程与线程的概念A.进程的概念a.程序是计算机存储系统中数据文件源代码程序--文本文件,描述程序行为和功能可执行程序--二进制文件,直接加载并执行进程的概念有两层的概念,在广义上是指程序关于某个数据集合的一次运行活动,而在侠义上指的是程序被加载到内存中执行后得到进程程序与进程的区别体现在程序是硬盘中静态文件而进程是内存中动态的运行实体程序与进程的联系1.一个程序可能对应多个进程--一个程序多...

2019-08-20 14:32:34 327

转载 Qt--基础图形绘制

一.基础图形绘制A.Qt图形系统中的关键角色QPainter--Qt中的画家,能够绘制各种基础图形 ,拥有绘图所需的画笔、画刷、字体QPaintDevice--Qt中的画布,画家的绘图板,所有的QWidget类都继承自QPaintDeviceQt图形系统中的关键角色Qt中所使用的工具1.QPen-用于绘制几何图形的边缘,由颜色、宽度、线风格等参数组成2.QBrush-用于填充几何图形的调色板,由...

2019-08-20 14:29:17 248

转载 Qt--多页面切换组件

一.多页面切换组件多页面的切换在我们日常的软件使用中是十分广泛的,有着很好的便捷性,下面一张图片展示了多页面的使用的便捷性可以看到用鼠标点击不同的标题时会出现不同的页面内容A.Qt中的多页面切换组件QTabWidgetQt中为多页面切换的实现提供了一个专门的类QTabWidget,,它可以实现能够在同一个窗口中自由切换不同页面的内容,并且是一个容器类型的组件,提供友好的页面切换方式,在QTab...

2019-08-16 15:12:14 1498

转载 Qt--模式视图设计

一.模型视图设计模式A.模型视图设计模式1.模型与视图相分离2.模型对外提供标准接口存取数据(不关心数据如何显示)3.视图自定义数据的显示方式(不关系数据如何组织存储)模型视图模式的直观理解模型视图的工作机制1.当数据发生改变时--模型发出信号通知视图2.当用户与视图进行交互时--视图发出信号提供交互信息Qt中的模型类层次结构QAbstractItemModel类为项模型类提供抽象接口.QAbs...

2019-08-16 14:37:43 209

转载 Qt--Qt中的事件处理

一.Qt事件处理A.图形界面应用程序的消息处理模型B.Qt平台将系统产生的消息转换为Qt事件1.Qt事件是一个QEvent的对象2.Qt事件用于描述程序内部或外部发生的动作3.任意的QObject对象都具备事件处理的能力C.GUI应用程序的事件处理方式1.Qt事件产生后立即被分到QWidget对象2.QWidget中的event(QEvent)进行事件处理3.event()根据事件类型调用不同的...

2019-08-15 09:06:43 111

转载 Qt--文本流和数据流、缓冲操作和数据操作

一.文本流和数据流A.Qt中讲文件类型分为2大类1.文本文件--文件内容是可读的文本字符2.数据文件--文件内容是直接的二进制数据QFile直接支持文本文件和数据文件的读写B.Qt提供了辅助类简化了文本文件/数据文件的读写1.QTextStream--写入的数据全部转换为可读文本2.QDataStream--写入的数据根据类型转换为二进制数据IO设备辅助类的使用方式不同的Qt版本的数据流文件格式...

2019-08-14 09:31:04 945

转载 Qt--软件开发流程简介、Qt中的文件操作

一.软件开发流程Q.什么是软件开发流程?1.通过一系列步骤保证软件的顺利完成2.软件产品在生命期内的管理方法学软件开发流程的本质1.开发流程与具体技术无关2.开发流程是开发团队必须遵守的规则常见的开发流程--即兴、瀑布、增量、螺旋、敏捷等A.即兴模型1.与最终用户交流后立即开始进行开发2.没有需求分析和需求发掘的过程3.没有整体设计以及规划的过程4.没有相关软件文档,维护性差B.瀑布模型1.通过...

2019-08-12 16:46:52 608

转载 Qt--对话框及其类型、布局管理器

一.对话框及其类型1.对话框是与用户进行简单交互的顶层窗口2.QDialog是Qt中所有对话框窗口的基类3.QDialog继承于QWidget是一种容器类的组件A.QDialog的意义1.QDialog作为一种专用的交互窗口而存在2.QDialog不能作为子部件嵌入其它容器中3.QDialog是定制了窗口样式的特殊的QWidgeta.模态对话框(QDialog::exec())1.显示后无法于...

2019-08-09 19:46:35 621

转载 Qt--计算器的实现

一.计算机程序界面分析从效果图我们可以得知1.QLineEdit用于接受用户输入2.QLineEdit能够获取用户输入的字符串3.QLineEdit是功能性组件,需要父组件作为容器4.QLineEdit能够在父组件中进行定位该计算器的坐标及位置如图所示界面的代码实现#include "Widget.h"#include <QApplication>#include <QPu...

2019-08-09 09:41:02 193

转载 Qt--Qt的简单介绍以及坐标系统

一.Qt Creator工程介绍Qt Creator以工程项目的方式对源码进行管理A.一个Qt Creator工程包含不同类型的文件.pro项目描述文件.pro.user用户配置文件.h头文件.cpp源文件.ui界面描述文件资源文件-图片、音频等B.pro项目描述文件的基本构成C.pro项目描述文件中的高级变量D.CONFIG用于设定项目的配置信息和编译选项CONFIG的常用选项1.debug-...

2019-08-07 15:08:49 219

转载 C++--模板的概念和意义、深入理解函数模板、类模板的概念和意义

一.模板的概念与意义Q:C++中有几种交换变量的方法?定义宏代码与定义函数A.定义宏代码优点:代码复用,适合所有的类型缺点:编译器不知道宏的存在,缺少类型检查B.定义函数优点:真正的函数调用,编译器对类型进行检查缺点:根据类型重复定义函数,无法代码复用C.泛型编程--不考虑具体数据类型的编程方式Swap泛型写法中的T不是一个具体的数据类型,而是泛指任意的数据类型C++中的泛型编程函数模板--一...

2019-07-16 09:02:12 647

转载 C++--被遗弃的多重继承、经典问题

一.被遗弃的多重继承Q:C++中是否允许一个类继承自多个父类?在实际的C++编译环境中,C++是支持编写多重继承的代码1.一个子类可以拥有多个父类2.子类拥有所有父类的成员变量3.子类继承所有父类的成员函数4.子类对象可以当作任意父类对象使用多重继承的语法规则但是在多重继承中会存在许多问题Q:多重继承得到的对象可能拥有不同的地址代码示例#include <iostream>#in...

2019-07-14 08:21:45 127

转载 C++--C++对象模型分析、c++中的抽象类和接口

一.C++对象模型分析A.class是一种特殊的struct1.在内存中class依旧可以看作变量的合集2.在class域struct遵循相同的内存对齐规则3.class中的成员函数与成员变量是分开存放的--每个对象有独立的成员变量,所有对象共享类中的成员函数Q:class与struct的内存占用情况?#include <iostream>#include <string&...

2019-07-12 14:29:39 128

转载 C++--同名覆盖、多态

一.同名覆盖引发的问题父子间的赋值兼容--子类对象可以当作父类对象使用(兼容性)1.子类对象可以直接赋值给父类对象2.子类对象可以直接初始化父类对象3.父类指针可以指向子类对象4.父类引用可以直接引用子类对象代码示例#include <iostream>#include <string>using namespace std;class Parent{p...

2019-07-04 20:40:44 358

转载 C++--前置操作符与后置操作符

一.前置操作符与后置操作符Q:下面的代码有没有区别?为什么?代码的实现#include <iostream>#include <string>using namespace std;int main(){ int i = 0; i++; ++i; return 0;}意想不到的事实1.现代编译器都会对代码进行优化2...

2019-07-01 20:51:22 272

转载 C++--继承中的构造与析构、父子间的冲突

一.继承中的构造与析构Q:如何初始化父类成员?父类构造函数与子类构造函数由什么关系?A.子类对象的构造1.子类在可以定义构造函数2.子类构造函数--必须对继承而来的成员进程初始化(直接通过初始化列表或者赋值的方式进行初始化,调用父类构造函数进行初始化)B.父类构造函数在子类中的调用方式1.默认调用--适用于无参构造函数和使用默认参数的构造函数2.显示调用--通过初始化列表进行调用,适用于所有父类...

2019-07-01 20:50:11 212

转载 C++--继承的概念和意义、继承中的访问级别、不同的继承方式

一.继承的概念和意义Q:类之间是否存在直接的关联关系?由这个问题由此联想到生活中的例子:组合A.组合关系:整体与部分的关系组合关系的描述--代码示例#include <iostream>#include <string>using namespace std;class Memory{public: Memory() { c...

2019-06-28 18:08:19 227

转载 C++--智能指针、逻辑操作符的陷阱

一.智能指针内存泄漏(C++主要的Bug来源)1.动态申请堆空间,用完后不归还2.C++语言中没有垃圾回收机制3.指针无法控制所指堆空间的生命周期代码示例#include <iostream>#include <string>using namespace std;class Test{ int i;public: Test(int i)...

2019-06-23 21:10:01 188

转载 C++--函数对象的分析 经典问题

一.函数对象的分析Q:客户的需求1.函数可以获得斐波那契数列每项的值2.每调用一次返回一个值3.函数可根据需求重复使用for(int i=0;i<10;i++){ cout<<fib()<<endl;}代码示例#include <iostream>#include <string>using namespace std...

2019-06-20 13:41:30 127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除