自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (1)
  • 收藏
  • 关注

原创 MTK平台camera bsp学习之camera HW架构篇

摘抄于https://online.mediatek.com/QuickStart/edca6e98-cde3-4817-bb5a-7c3db1bfd075Camera HW介绍Camera HW Introduction本部分主要介绍平台支持的Image Sensor类型,硬件接口以及常见基本概念平台通用的注意事项请参考DCC文件:MediaTek DCC > External Document > HW > Common Design Notes > C.

2020-06-06 22:19:20 1656 1

原创 MTK平台camera bsp学习之android平台架构篇

android平台架构(简单了解,都是csdn上看其他博客摘抄下来)从上到下:分为APP层framework层native层hal层kernel层camera bsp侧重点:kernel hal native层 framework层app层: 系统应用层所有的应用程序都是使用JAVA语言调用Framework的接口编写的 使用Java通过JNI(Java Native Interface)的方式,配合Android NDK来开发原生程序fr...

2020-06-06 21:31:06 1831

原创 SM34项目整编报错处理

报错:BEGIN failed--compilation aborted at /media/ubuntu/disk/SM34/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6765/../common/emigen_v1.pm line 1348.Compilation failed in ...

2019-06-12 09:38:52 2445 2

原创 事件过滤器和事件发送

 QT中提供了事件过滤器来是现在一个部件中监控其他多个部件的事件。时间过滤器和其他部件不同,他不是一个类,只是由两个函数组成的一种操作,用来完成一个部件对其他部件的事件的监控。 这两个函数分别是QObject类中的函数。installEventFilter()和eventFilter()  要对一个部件是用事件过滤器,那么就要先使用其installEventFilter来为其安装过来不起,这个函数...

2018-04-19 15:59:50 843

原创 定时器事件和随机数(示例代码)

1、QTimeerEvent类用来描述一个定时器事件。对于一个QObject的子类,只需要使用ingQobject:: startTimer(int interval)函数就可以开启一个定时器,这个函数需要输入一个以毫秒为单位的证书作为参数来表明设定的事件,函数返回一个整形的标号来代表这个定时器。当这个定时器溢出时候,就可以在timerEvent()函数中进行需要的操作id1 = startTim...

2018-04-19 12:47:08 2311

原创 键盘事件(按下CTRL+M 最大化窗口)

QKeyEvent类用来描述一个键盘事件。当键盘按键被按下或者被释放的时,键盘事件便会被发送给拥有键盘输入焦点的部件。QKeyEvent的key()函数可以获取具体的按键。回车键在qt::Key_Return;键盘上的一些修饰键,比如ctrl和shift等,这里需要使用QkeyEvent的modifiers()函数来获取,可以在帮助中使用Qt::KeyboardModifier关键字来查看所有的修...

2018-04-19 11:00:22 1160

原创 鼠标事件(鼠标的各种处理事件)

QMouseEvent类用来表示一个鼠标事件,在窗口部件中按下鼠标或者移动鼠标指针时,都会产生鼠标事件。利用QMouseEvent类可以获知鼠标是那个按键按下了,鼠标指针的当前位置等信息。通常重定义部件的鼠标事件处理函数来进行一些自定义的操作。QWheelEvent类用来表示滚轮事件,主要是用来获取滚轮移动的方向和距离。示例代码:#ifndef WIDGET_H#define WIDGET_H...

2018-04-19 10:11:41 2018

原创 串口通讯中出现的错误(1)

 问题1: 在做串口接收接收中断时,有这么一个现象,当接收到数据后,进入中断,如果再次发送的话,就进不去中断了,并且程序阻塞住了?为什么呢 源码如下:   原因如下:在数据寄存器和数据总线之间有一个移位寄存器,接收数据是先把数据放在移位寄存器中,如果没有读取移位寄存器里面的数值的话,就不能继续接收数据了,因此,在接收到一次数据后,如果不读取其中的数据的话就会阻塞。 所以 只要将注释部分的数据读取出...

2018-04-17 22:11:00 10749

原创 应用程序主窗体

 主窗口为建立应用程序用户界面提供了一个框架,QT提供了QMainWindow和其他相关的类功能管理主窗口。QMainWindow有自己的布局。有一下组件     对于菜单连 mainToolBar在点击“在这里输入”位置,可以添加一个菜单选项。菜单选项下是一些下拉列表,当新建一个下拉列表的时候,就会创建一个action.转到槽就可以编写事件处理函数了。 工具栏:提供了一组可以移动的面板。可以将Q...

2018-04-17 21:22:57 1412

原创 纯虚函数和抽象类

语法格式:virtual 返回值类型 函数名 (函数参数) = 0; 含有纯虚函数的类为抽象类。 注意点:抽象类不能常见对象:因为纯虚数没有函数体,不是完整的函数,无法调用,因此无法实例化。抽象函数一般用来作为基类,让派生类去实现虚函数。 在这个抽象类中,如果有其他不是虚函数的成员函数,那么只要定义一个基类指针指向派生类,就可以直接调用这些正常的成员函数。抽象类与虚函数的说明:1) 一个纯虚函数就...

2018-04-16 21:22:29 715

原创 函数重载/遮蔽/隐藏

重载、遮蔽、隐藏函数重载:(只有在一个类中,没有继承父类的函数情况下)表示在同一个类中,函数名称相同,而参数不同,称为函数重载 函数遮蔽:(基类指针指向派生类,调用情况下)函数遮蔽是指子类覆盖父类的函数,覆盖的要求是函数名相同,参数相同,并且父类函数必须有virtual关键字,如果父类没有virtual关键字,就构不成遮蔽(此时是隐藏) 函数隐藏:(是指在子类对象访问成员函数的时候,隐藏)隐藏是指...

2018-04-16 21:14:23 226

原创 多态定义

1、什么是多态性? 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。 只有重写虚函数才体现C++的多态性虚函数: 虚函数对于多态具有决定性的作用,有虚函数才能构成多态。 1) 只需要在虚函数的声明处加上 virtual 关键字,函数定义处可以加也可以不加。 2) 为了方便,你可以只将基类中的函数声明为虚函数,这样所有派生类中...

2018-04-16 21:13:23 1415

原创 C++文件输入输出流+输入输出二进制文件(自定义对象)

文件流类和文件流对象文件流是以外存文件为输入输出对象的数据流。输出文件流   内存->外存输入文件流   外存->内存 文件流类流的名称 流的作用 ifstream类 从istream类派生的,用来支持从磁盘文件的输入 ofstream类 从ostream类派生的,用来支持向磁盘文件的输出 fstream类 从iostream类派生的,用来支持对磁盘文件的输入输出   操作:打...

2018-04-16 20:22:50 5387

原创 cin

cin是标准输入流,从标准输入设备(键盘)获取数据。只有在输入完数据后再按回车键,该行数据才能被送入键盘缓冲区,形成输入流,提取运算符>>才能从中提取数据程序中的变量通过流提取符“>>”从流中提取数据。流提取符“>>”从流中提取数据时通常跳过输入流中的空格、tab键、换行符等空白字符。  cin的终止当遇到无效字符或遇到文件结束符(不是换行符,是文件中的数据已读...

2018-04-16 18:17:09 200

原创 cout

输入/输出格式控制内部成员函数流成员函数 与之作用相同的控制符 作用 precision(n) setprecision(n) 设置实数的精度为n位 width(n) setw(n) 设置字段宽度为n位 fill(c) setfill(c) 设置填充宇符c setf() setiosflags() 设置输出格式状态,括号中应给出格式状态,内容与控制符setiosflags括号中...

2018-04-16 18:15:46 1059

原创 模板的全特化与偏特化

特化得作用:函数模板有时候不能适用于所有的数据类型(比如字符串的比较char *数据类型),由此需要进行特化处理,把不适用的部分单独拿出来携程一个函数。 什么是全特化?全特化模板头是 template<>,模板形参没有任何参数,编译器执行程序时,如果存在多个重载关系的模板。匹配的规则是先匹配特殊画的模板,如果没有匹配成功,在匹配通用的模板。 全特化的模板参数是空的,意味着全部模板形参类...

2018-04-16 16:26:41 388

原创 类模板定义+用类模板写一个入栈出栈的程序

类模板和函数模板定义类似,都可以看成由模板头和模板体两部分组成。类模板体是一个完整的类。template<typename 形参名1, template 形参名2,……>class 类名{    // …}; 例子:用模板类写一个入栈出栈的程序#include<iostream> using namespace std; template <typename T, u...

2018-04-16 11:30:57 1538

原创 函数模板定义

1、函数模板的定义由模板头和模板体构成template<typename 形参名1 , typename 形参2 ,……..>返回值类型 函数名{    函数体} template<typename 形参名1 , typename 形参2 ,……>被称为模板头 <>可以是typename定义的一个待定的数据类型,也可以是明确的数据类型 模板体第一个标准的函数,包...

2018-04-16 11:28:48 2163

原创 友元函数

友元函数和友元类友元函数和不同函数的区别:友元函数在类中声明,那么这个函数就能访问里面的所有成员变量。 友元函数想干嘛?如果我自己定义了一个函数,函数的形参是一个对象,在函数体里面,通过这个对象我访问对象里的所有成员变量,这显然是不行的,因为private/protected不能被外部访问。那怎么办?通过友元函数!那么怎么定义友元函数呢?常规的定义一个函数(这个函数里面的形参是一个对象),然后把这...

2018-04-14 18:12:21 263

原创 static和const

static成员变量: static 成员变量必须在类声明的外部初始化,具体形式为: type class::name = value;(注意没有static关键字,仅仅在类中声明的时候加上static) type 是变量的类型,class 是类名,name 是变量名,value 是初始值。将上面的 m_total 初始化: int Student::m_total = 0; 静态成员变...

2018-04-14 18:11:17 109

原创 new和malloc

new和delete C++ 中的 new 和 delete 分别用来分配和释放内存,它们与C语言中 malloc()、free() 最大的一个不同之处在于:用 new 分配内存时会调用构造函数,用 delete 释放内存时会调用析构函数。构造函数和析构函数对于类来说是不可或缺的,所以在C++中我们非常鼓励使用 new 和 delete。   new[]与new的却别 new ...

2018-04-14 17:34:50 96

原创 析构函数

析构函数 建对象时系统会自动调用构造函数进行初始化工作,同样,销毁对象时系统也会自动调用一个函数来进行清理工作,例如释放分配的内存、关闭打开的文件等,这个函数就是析构函数。   析构函数(Destructor)也是一种特殊的成员函数,没有返回值,不需要程序员显式调用(程序员也没法显式调用),而是在销毁对象时自动执行。构造函数的名字和类名相同,而析构函数的名字是在类名前面加一个~符号 析构函数没有参...

2018-04-14 17:33:57 258

原创 构造函数

构造函数:在C++中,有一种特殊的成员函数,它的名字和类名相同,没有返回值,不需要用户显式调用(用户也不能调用),而是在创建对象时自动执行。这种特殊的成员函数就是构造函数(Constructor)。 构造函数的规则:构造函数没有返回值,因为没有变量来接收返回值,即使有也毫无用处,这意味着:不管是声明还是定义,函数名前面都不能出现返回值类型,即使是 void 也不允许;函数体中不能有 return ...

2018-04-14 17:32:58 194

原创 什么是内联函数

内联函数:在程序编译时,编译器将程序中出现的内联函数的调用表达式用内联函数体来进行替换。显然,这种做法不会产生转去转回的问题,但是由于在编译时将函数体中的代码被替代到程序中,因此会增加目标程序代码量,进而增加空间开销,而在时间开销上不像函数调用时那么大。可见他是以目标代码的增加来换取时间的节省。注意点:1、类内定义的函数是内联函数,类外定义的函数是非内联函数(段函数可以定义在类内,长函数可以定义在...

2018-04-14 17:31:21 814

原创 类和对象

对象,类型的一个变量创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例(Instance),拥有类的成员变量和成员函数 类不占内存空间方法:类里面的函数、属性:累的成员变量 类和结构体一样,构造类的时候不能对成员变量初始化。可以把它理解为比较复杂的数据类型。因此类的大小和int一种说法。定义一个空类或者结构体,那么他的变量占用的空间是1个字节的占位符。 类的定义注意点:在最后要加一个";"...

2018-04-14 17:30:08 203

原创 利用线程读取文件(带有进度条)

首先在起始串口上 放上 按钮,文本框 目的: 一:当点击浏览按钮时,打开文本对话框,选择一个文件,把文件名显示在文本框中:代码实现:  效果:  二、当点击发送按钮时,将会跳出进度条,显示进度首先添加一个dialog类 ,在里面添加进度条  设置初始状态为0. 在这个类函数里面,创建一个线程 专门用于读取要打开的文件。 代码:在.h文件里声明定时器时间,以及一个线程指针的声明。  在其构造函数里面...

2018-04-13 23:49:32 1005

原创 缓冲文件系统和非缓冲文件系统

1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”,装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存“缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则操作外存的次数就少,执行速度就快、效率高...

2018-04-12 20:56:53 3024

原创 文件对话框---做一个简单的文本编译器(3)

在前面的基础上,把保存文件的功能完成,同时解决了中文的显示异常。最终的原因,原来是QT与VS之间采用的字符编码不同,只要编写一个头文件,就可以实现所有中文问题的完美解决!文件打开显示部分的改进代码打开文件:string gbk_name =GBK::FromUnicode(filepath);fp =fopen(gbk_name.c_str(), "a+");显示在EDIT上ui.TextEdit...

2018-04-12 20:08:16 171

原创 文件对话框---做一个简单的文本编译器(2)

当按下打开按钮时,编写处理函数voidMyGUI::onBtnOpenClicked(){QStringfilepath= QFileDialog::getOpenFileName(this, "打开");if(filepath.length() > 0){qDebug()<< filepath;//ui.TextEdit->setPlainText(filepath);/...

2018-04-12 13:13:15 399

原创 字符串,QT字符串类,c++字符串类之间的转换

1. std::string转换成QStringstring std_str ("abc");QString q_str = QString::fromStdString(std_str);2. QString转换成std::stringQString q_str("abc");string = q_str.toStdString();3. string转换成char*string std_str...

2018-04-12 12:46:00 490

原创 完美解决QT+VS2013中文显示乱码

qt4和VS2008的中文支持,大家都知道的。就不说了。qt5.2.1发布后,源码全部是UTF-8编码,但由于微软的问题,VS2010打上补丁VS2010sp1,加入#pragma execution_character_set("utf-8")可以解决中文乱码问题。可是VS2012又忘记了支持这段代码,qt5.2还会出现乱码。所以为了用qt5.2只好选择VS2013了版本选择:1、qt-open...

2018-04-12 11:15:52 5945

原创 系统调用与用户接口API

什么是系统调用:操作系统提供用户一种特殊的接口(API),用户通过这组特殊的接口来获操作系统内核提供的服务。为什么用户程序不能直接访问系统内核提供的服务?这是由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的 用户进程在通常情况下不允许访问内核数据,也无法直接调用内核函数,它们只能在用户...

2018-04-11 21:58:52 2332

原创 文件对话框---做一个简单的文本编译器(1)

 打开一个文件 仅仅获得文件名(包含路径),将这个文件名显示在文本框中。1、创建两个按钮、一个文本框 2、编写连接信号与槽的程序  3、Qt里有一个QFileDialog类:(1) 打开文件QStringQFileDialog::getOpenFileName(2) 保存文件QStringQFileDialog:: getSaveFileName这两个static函数,返回值为被选择的文件名  g...

2018-04-11 21:40:13 817

原创 点击按钮显示hello world

1、新建QT工程2、添加一个QT Gui类3、在设计界面里,加入一个按钮、加入一个textEdit4、利用信号与槽机制编写代码       在QTGuiClass.h文件中  加入槽处理函数的生命 在QTGuiClass.cpp文件中,将按钮触发信号和时间处理槽链接起来、然后编写事件处理函数 :      注意点:要知道connect里面的参数connect(按钮对象,SIGNAL(clicked...

2018-04-11 19:56:39 1933

原创 勾选复选框后执行某一个操作

 我们主要关注3个方面1. 有哪些属性在设计器的属性窗口中可以直接设置2. 有哪些操作函数?查阅Qt文档bool isChecked () constvoid setChecked ( bool)3. 有哪些信号?(即支持哪些事件)void stateChanged ( intstate )  复选框的属性: checked用于表明复选框的初始状态。 在mywin.h文件中,添加事件处理函数的声明...

2018-04-11 19:54:42 1755

原创 单行文本框+按钮实现用户登录

1. 观察可以设置的属性2. 阅读文档,掌握常用的函数接口3. 阅读文档,掌握常用的信号 相关信号voidcursorPositionChanged ( int old, int new )voideditingFinished () // 当失去焦点voidreturnPressed () // 当回车键被按下voidselectionChanged ()voidtextChanged ( co...

2018-04-10 21:02:56 469

原创 组合框

QComboBox是一个文本框和一个下拉列表的组合。用户从下拉列表里选择一个值,被选择的值显示在文本框中  下拉列表里抽数据项至少有以下属性(1)位置index,第一项的index值为0(2)文本text,这一项的显示值(3)关联数据data,每一项可以关联一个数据,比如整数、文本等类型的数据 手工添加项:(1) addItem:新数据项附加在末尾(2)insertItem: 在指定位置插入数据项...

2018-04-10 21:00:34 325

原创 工具按钮QToolButton

主要属性:1、text文本显示2、icon图标图标最好是png格式 (背景透明) 图标资源由*.qrc文件定义,最终会被编入可执行程序 图标放在Resource目录下,通过 资源浏览器加载进去,首先要导入.qrc文件,然后添加在路径那一栏里把图片导入。  在icon里面把图片显示在按钮里。iconsize用于设置大小checkable用于设置按钮是否可以检测到  Style用于设置文字的格式,一般...

2018-04-10 20:59:08 3837

原创 Qlable显示文本和图片

文字的显示格式(1)背景色,前景色注:实际用的是第14章的QtStyleSheet的技术(2) 字体及大小(3) 对齐方式(4) 是否换行(5) 设置边框  用于设置对齐方式和是否换行 pixmap用于插入图片  frameshape用于设置文字边框   用于导入图片 ...

2018-04-10 20:56:31 2824

原创 QT模式对话框

对话框:用于提示用户输入对话框分两种:(1)模式对话框Modal背景界面卡住,用户必须完成对话框输入,关闭对话框之后,才能回到背景界面(2)非模式对话框Non‐Modal背景界面可以活动。 对话框传入初始值以构造函数的参数形式传入初始值 添加类的时候:选择QDialog.在mainwidt类文件中添加一个登陆按钮, 按下按钮后在时间处理函数中执行QDialog窗体  在qdialog文件中编写登陆...

2018-04-10 20:51:15 627

c++基于文件的图书管理系统

基于文件的图书馆管理系统 图书管理系统的是用对象分为学生和图书馆管理员 学生可以: 1、搜索书,输入书名,可以查找图书馆内所有书 2、借书,直接输入要借的书,如果可借直接提示是否借阅,学生输入“是”就可以借阅了。如果被别人借走了,则显示不可借。如果没有这本书,就会显示借阅失败。 3、还书,从自己的没有还的书中,一个一个给出提示是否归还,学生输入“是”,则显示归还成功。 4、查看自己的借阅记录。如果已经归还,则显示已归还,如果尚未归还,则显示尚未归还 5、切换用户 6、退出 管理员可以: 1、创建书单,管理员一个一个的输入书名,作者名,编号,书名输入“END”表明创建成功。 2、增加新书,和创建书单一样 3、删除书单,管理员输入书名,系统给出提示是否删除,管理员输入是,就会显示删除成功(如果书被借出,则不可以删除) 4、查看已经借出去的书, 管理员可以查看所有借出去并且没有归还的书 5、查看借阅记录,可以查询所有的节约记录,某本书的借阅记录,某个人的节约记录。 输出借书,还书操作。 6、产看书库,首先输出所有书单信息,然后系统给出提示,是否按照。。。排序,管理员输入是,则打印排序的信息。 7、切换用户 8、退出

2018-05-01

空空如也

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

TA关注的人

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