- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 QML-动态添加控件
QML中的控件的使用都是提前创建好的,在运行时就已经全部初始化完成了,会一一显示到画布上。但是如果不想提前创建好所有控件,想在运行时动态创建和删除,提供了详细的步骤来实现该功能。
2022-10-10 20:46:12 2313 1
原创 sqlite数据库知识梳理-思维导图
SQLit数据库(轻量级数据库)1,实现数据的持久化保存,方便数据的增删改查2,数据库管理系统,用于管理数据库,保证数据的完整性和安全性DDL:创建数据库,修改数据库的结构DML:增删改查,操作数据表3,数据库模型:层次模型,网状模型,关系模型(类似execl表格的数据存储)表头---字段(属性)数据信息---记录(元组)关键字:用来唯一标识一条记录,例如:学生-->学号候选码:例如:工人的工号和身份证号(都能唯一标识)域:属性的值的取值范围思维导图
2022-05-23 11:01:12 599
原创 FFMPEG视频编码,解码,转码流程梳理-思维导图
FFmpeg框架1,将视频和音频大文件按照一定的封装格式进行封装2,封装格式:avi,rmvb,mp4,flv,mkv等等(当然也使用不同的图标)封装后的数据为码流数据,码流数据经过解码后才是可以播放的视频。3,像素数据(RGB,YUV)----编码(使用算法)--->码流数据码流数据---解码--->像素数据4,视频的编码算法:h264(最常用) 音频的编码:AAC5,h264:在一个结构体存一帧码流数据红色的帧:I 蓝色的帧:P 绿色的帧:B...
2022-05-23 10:53:59 846
原创 linux基础梳理-思维导图
在学习了linux基础后,将学习的知识做了梳理,其中包含, linux常用操作命令,linux目录结构,文件区分,通配符,管道,静态库,共享库,linux权限管理,makefile等知识进行了整合,方便后续进行复习。...
2022-05-23 10:32:58 193
原创 QT中使用FFmpeg视频转码
视频转码视频转流程图转码步骤①转码类设计,数据的初始化②构造函数中进行开辟内存空间和组件的注册③封装函数用于接收需要转码的视频文件打开视频文件,并判断是否打开成功查找文件中的数据流,判断是否找到数据流找到后从中找出视频流,判断是否有视频流④封装函数用于对视频文件进行转码的一系列操作,并输出一个转码后的视频文件猜测编码器,并判断有无数据文件并设置视频信息最终的输出格...
2022-04-16 16:34:49 907
原创 QT中使用FFmpeg视频编码
视频编码视频编码流程图①对编码需要用到的数据进行初始化②在编码类的构造函数中进行初始化,注册所有组件,开辟内存空间④封装一个函数用于编码前的系列准备猜测编码输出的格式是否存在并判断打开视频文件流并判断是否打开成功首先要设置输出格式打开视频文件流新建视频流编码器的参数设置:格式、宽、高、码率、帧率等根据猜测到的编码器的 ID 查找编码器并判断找...
2022-04-16 16:23:38 1492
原创 QT中使用FFmpeg视频解码
视频解码流程图步骤加入需要的头文件1,注册所有组件 av_register_all()2,打开视频文件 avformat_open_input(),(判断是否打开成功)3,取视频相关信息:视频码流,音频码流,文字码流4,查找流信息: avformat_find_stream_infp()5,从查找到的流信息中找到视频码流信息6,找到解码器 avcodec_find_decoder()(判断是否找到)7,打...
2022-04-16 16:14:53 3501
原创 Qt(C++)中如何连接sqlite3数据库及如何使用
第一步引入相关文件①将sqlite一些对应的文件复制到qt的工程文件②在工程配置文件.pro中加入 LIBS += $$PWD/lib/sqlite3.lib$$:表示当前工程目录第二步在qt中使用sqlite3数据库①加入数据库头文件 #include “sqlite3.h”②打开数据库 int res=sqlite3_open(“数据库名”,指针变量);Sqlite3 * sqldb =nullptr;返回值:错误的代码③判
2022-04-07 19:15:46 5691 8
原创 如何在linux上安装qt
以安装qt5.9.8为例在linux上安装qt 5.9.8 安装步骤:第一步:去官网下载qt安装包http://download.qt.io/archive/qt/安装需要的qt版本,我安装的是qt 5.9.8然后将安装好的安装包共享给Ubuntu第二步:开始安装qt①输入命令:“sudo chmod -R 777 qt-opensource-linux-x64-5.9.8.run”,赋予安装包权限。②输入命令““sudo ./qt-openso.
2022-03-15 21:16:39 18354 8
原创 C++-输入输出流
①先引入头文件<fstream>②创建文件类对象③打开文件④判断文件内有无内容,有内容,则读取内容存入链表中⑤无内容,则写入内容到文件中⑥最后关闭文件...
2022-02-28 03:00:00 434
原创 C++-map容器
关联容器 map容器(底层是红黑树,查找效率最高)①需要引头文件#include<msp>②使用:map<key,value>//键值对表示,可以通过key找到value③insert(pair(key,vaiue)(key,value));④去除map中的4786警告要在文件开头加上:#pragma warning(disable:4786)⑤访问: 1,通过[],[]被重载了,用key值查找:查找时是先找有没有这个key..
2022-02-27 16:30:52 307
原创 C++-static修饰类的静态成员
static int count1;①实现数据共享 ②在类外初始化,数据类型 类名 域运算符 变量名=0;③访问方式:对象 . 成员名;类名 域运算符 成员名④静态的数据成员属于类不属于某个对象,是所有对象共享的⑤静态成员函数属于类,没有this指针,所以不能访问类的非静态成员,不能用const修饰,只能访问静态;非静态可以访问静态...
2022-02-27 16:18:58 93
原创 C++-内联函数和宏的区别?
①格式:内联函数:在函数定义前面+inline宏:#define名称值②内联函数是用来协调代码的效率和可读性,一般用于功能较简单的代码③内联函数函数在定义完以后系统会先判断该函数适不适合做内联函数,而宏定义直接定义④内联函数在在调用后才会执行,宏定义完以后就已经执行了⑤内联函数在调用时实际上是对函数内代码的复制,而宏的作用是替换...
2022-02-27 16:15:47 209
原创 C语言-引用和指针的区别?
①引用的格式:数据类型&引用名=变量名;指针的格式:数据类型*变量名=指向的变量地址;②使用引用一定要进行初始化指针为了不出现野指针,也要进行初始化为NULL③引用只能对数组的元素使用,不能对整个数组使用指针可以指向整个数组④引用作为函数参数时,调用不会开辟内存空间,只是给变量取了个别名指针作为函数参数时,调用时在32位系统会开辟4字节的空间,且传入的变量要+&⑤引用初始化后就不能再修改了指针可以指向一个变...
2022-02-27 16:12:08 3244
原创 C++与C语言有哪些主要区别
1.面向对象,特征:抽象,封装,继承,多态2.兼容C语句3.标准库中的内容在命名空间std中定义:using namespace std;4.输入,输出 #include<iostream>输出 cout<< 输入 cin>> endl换行5.自定义命名空间Namespace 名称{内容}6.::域运算符:①访问命名空间中的内容②可以得到全局变量的值③类成员的访问...
2022-02-27 16:06:48 597
原创 C语言-文件
1.文件分类:每一个和主机相连的输入设备和输出设备看作是一个文件2.文件处理:缓冲文件系统(高级输入输出系统),非缓冲文件系统(低级输入输出系统)3.文件指针 FILE *fp;FILE是在头文件<stdio.h>下的一个结构体,是读写文件所必须的。4.文件的打开fopen(文件名,使用方式),返回值是文件在缓存区的地址5.文件的使用方式分为:r,w,a,r+,w+,a+等r:表示文件只读;w:表示文件只写r+:表示文件用于读写,但是文件存在时才可以进行读写,文件不存在就会打
2022-02-27 15:52:28 93
原创 C语言-链表
1.数据结构大致可以分为,线性结构和非线性结构线性结构有 线性表,栈,队列,串等非线性结构有 树,二叉树,图等2.链表:是一种线性表,用指针相连的结点3.存储方式:线性存储,链式存储4.链式存储:存储是不连续的,每一个元素除了存储自身的信息外,还需要存储其后续元素的信息5.链表每个结点由数据域和指针域组成,数据域用来保存自己的信息,指针域用来存储下一个结点的地址6.单链表:结构体里面嵌套自己的结构体指针创建一个单链表1.初始化------创建链表头(init).
2022-02-27 15:48:12 146
原创 C语言-指针
指针基础1.指针变量是一个特殊的变量,用来存储地址2.按变量地址存取变量值的方式称为“直接访问”,将变量的地址存在另一个变量中称为“间接访问”3.查看变量的地址用%p①取地址②取值(用*&num)4.定义一个指针变量Int *p; 其中int *为数据类型(指针类型) p为变量名5.指针变量如果没有进行初始化,为野指针,所以一般定义一个指针变量要给指针变量初始化为NULL(NULL被宏定义为(void *)0)6.如果*前面有数据类型说明.
2022-02-27 15:42:55 574
原创 C语言-结构体
1.不同类型的数据组合成一个有机的整体2.结构体声明(自己创造的一个数据类型)struct user_t(结构体名){成员(属性)};3.定义一个结构体变量(数据类型 变量名)struct user_t user1;4.结构体占用的内存:内存对齐原则:根据数据类型占内存最大的对齐,地址连续的内存可以拼接,声明变量的顺序不一样,内存也可能不一样。5.初始化:成员要一一对应,数据类型也要匹配,有“,”隔开部分初始化其余的成员值为0或者...
2022-02-27 15:31:35 1594
原创 C语言常用函数
1.strlen();用于计算字符串的长度,不包括‘\0’;返回值:字符串的实际长度,‘\0’为止2.strcpy():将一个字符串中的值复制到另一个字符串中;char* strcpy(目标字符串的首地址,要复制的字符串的首地址);返回值:char类型的地址;目标字符串必须足够大以便能够容纳被复制的字符串,建议使用strncpy()函数Strncpy(char*,char*,拷贝的个数)3.strcat():将两个字符串连成一个串;strca...
2022-02-26 22:13:05 96
原创 C语言数组
1.一维数组①定义:数据类型 数组名[数组长度];②初始化:部分初始化 如果只初始化了一部分元素,剩余元素为0如果全部初始化了,可以不写数组长度如果没有初始化元素,则元素都为随机数③获取数组中元素的写法:数组名[索引](索引从0开始,最大长度是数组长度-1)④数组长度只能是常量,常量表达式(一般大于1)⑤所占内存空间:数组长度*数据类型的内存空间(int 4字节)2.二维数组①定义:数据类型 数组名[行标][列标];②本质:...
2022-02-26 22:05:16 201
原创 C语言控制语句
1选择语句分支语句():单分支(if),双分支(if else),多分支(else if)2,格式:if(表达式,变量,常量,带有返回值的函数){语句;}(if后面不能省略{})switch语句(多路判定语句)①只用于判断“==”语句(匹配)②格式:switch(表达式,变量,常量,带有返回值的函数){case:常量; break;default break(break用于结束switch语句);}(表达式中的数据类型必须与常量类型匹配)...
2022-02-26 21:59:08 135
原创 C语言的输入输出和运算符
输入输出1.标准输入输出头文件 #include<stdio.h>2.调节控制台的大小控制台右键,属性3.printf():在控制台上显示数据Int printf(“cintrol string”,argamentlist);返回类型为int①Printf():包含控制字符串和参数列表控制字符串包括:文本字符,空格,格式命令,非打印字符(转义字符:\r回车,\n换行,\0空字符,\t制表符)②格式命令:由%开头,%d,%c,%f,%lf,%..
2022-02-26 21:40:25 4682
原创 一,C语言基础
1 .C文件的构成:①预处理命令②函数:包括函数首部和函数体③注释:分行注释和块注释④全局变量:声明在函数外面,全局可用2.程序的执行是从上往下的,入口在main()函数,除main()函数以外的其他函数的定义若在main()函数后,且前面没有声明该函数,则将无法运行并报错3.一个工程只能有一个main函数,在.C文件中,不可以出现函数名一样的函数,否则会报错4.在.C文件中所有的符号都是英文的,如出现中文会报...
2022-02-26 21:21:33 126
原创 C语言中标识符的命名规则是什么样的?
标识符的命名规则:1.标识符是由数字,字母,下划线组成的,且数字不可以作为开头。2.标识符一般用于给函数,变量命名3.标识符对大小写敏感。严格区分大小写4.标识符不能与系统定义的关键字重名。5.标识符不能与系统内置的标识符和函数名重名6.标识符可以为任意长度...
2022-02-26 18:42:59 16106
原创 C源文件的组成有几部分?分别是什么?
C源文件的组成:1.预处理命令例如:#include<stdio.h>2.注释例如:// /**/3全局变量例如:int max =10;4.函数(函数首部+函数体)
2022-02-26 18:27:08 1132
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人