图形界面
文章平均质量分 71
本专栏记录了我学习QT的一些心得,还有我感觉不错的转载过来的文章,基本都是我已经验证过的的一些知识点。另外还有记录了一些我学习的UI相关的知识,仅供参考,也欢迎大家一起来讨论。
圣地亚哥^
目前从事GUI、OSD相关工作,平时喜欢看驱动开发相关知识。
展开
-
framebuffer学习及fb绘图程序
一、了解framebuffer在Linux系统下,如果我们想对lcd屏或者其他显示器件进行画点、画线、画图案等操作,那么我们就必须要了解framebuffer(帧缓存)。对于用户来说,帧缓冲是Linux为显示设备提供的一个接口,它把一些显示设备描述成一个缓冲区,允许应用程序通过 FrameBuffer定义好的接口访问这些图形设备,从而不用去关心具体的硬件细节。对于驱动工程师来说,帧缓存是内核驱动申请的一片内存空间,然后lcd内有一片sram,cpu内部有个lcd控制器,它有个单独的dma用来将fram原创 2020-12-13 13:50:51 · 2928 阅读 · 5 评论 -
bmp图片格式解析
BMP文件数据从文件头开始先后分为四个部分bmp文件头:提供文件的格式、大小等信息struct bitmap_fileheader { unsigned short type; //表示位图类型 unsigned int size; //4字节 表示文件的大小,单位是字节 unsigned short reserved1; //2字节 这个是保留的,为0 unsigned short reserved2; //2字节 这个也是保留的,为0 unsigned int off_bits; /原创 2020-11-05 20:47:45 · 523 阅读 · 0 评论 -
ARGB颜色格式学习
概述RGBRGB(Alpha,Red,Green,Blue)色彩模式是工业界的一种颜色标准,是通过对红®、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。RGB图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上呈现16777216(256 * 256 * 256)种颜色ARGB一种色彩模式,也就是RGB(Alpha,Red,Green,Blu原创 2020-11-29 13:16:51 · 10202 阅读 · 0 评论 -
直线、圆环绘制算法
一、直线算法1、数值微分法(DDA算法)DDA算法主要是利用了增量的思想,通过同时对x和y各增加一个小增量,计算下一步的x和y值。根据上式可知△x=1时,x每递增1,y就递增k,所以只需要对x和y不断递增就可以得到下一点的函数值,这样避免了对每一个像素都使用直线方程来计算,消除了浮点数乘法运算。#include <Windows.h>#include <iostream>#include <cmath>using namespace std;const转载 2020-11-29 15:58:55 · 1513 阅读 · 0 评论 -
Linux图形化界面发展历程
图形化界面背景: 虽然在商业方面存在竞争,GNOME与KDE两大阵营的开发者关系并没有变得更糟,相反他们都意识到支持对方的重要性:如果KDE和GNOME无法实现应用程序的共享,那不仅是巨大的资源浪费,而且将导致Linux出现根本上的分裂。 KDE与GNOME是目前Linux/UNIX系统最流行的图形操作环境。从上个世纪九十年代中期至今,KDE和GNOME都经历了将近十年的漫漫历程,两者也都从最初的设计粗糙、功能简陋发展到相对完善的阶段,可用性逼近Windows系统。图形环境的成熟也为Linux的推广转载 2021-06-16 10:54:20 · 913 阅读 · 0 评论 -
QT实现员工管理系统
最近学习需要做一个员工管理系统的项目。项目要求是客户端服务器之间进行通信,注册与查询员工信息,因为学过QT就想着用QT来实现以下客户端,C来实现服务器。下面是我的客户端界面登陆界面注册界面主界面由于时间太紧,只写了登陆和注册的功能客户端服务器源码在github小伙伴可以自行下载https://github.com/a1449660223/Staff如果问题私信留言交流,相互学习共同进步...原创 2020-09-12 15:07:01 · 2869 阅读 · 0 评论 -
Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解
Graphics View提供了一个界面,它既可以管理大数量的定制2D graphical items,又可与它们交互,有一个view widget可以把这些项绘制出来,并支持旋转与缩放。这个柜架也包含一个事件传播结构,对于在scene中的这些items,它具有双精度的交互能力。Items能处理键盘事件,鼠标的按,移动、释放、双击事件,也可以跟踪鼠标移动。Graphics View使用BSP树来提供对item的快速查找,使用这种技术,它可以实时地绘制大规模场景,甚至以百万items计。Graphics Vi原创 2020-08-25 20:26:45 · 2719 阅读 · 0 评论 -
元对象编译器moc
诸位周知,Qt 使用的不是标准的C++ 语言,而是对其进行了一定程度的“扩充”。为什么这样说呢?这一点我们从Qt新增加的关键字就可以看出来:SIGNAL、SLOTS 或者 EMIT。所以有人会觉得Qt 的程序编译速度慢,这主要是因为在 Qt 将源代码交给标准 C++ 编译器之前,需要事先将这些扩展的语法去除掉。而完成这一操作的工具就是所谓的moc。moc 全称是 Meta-Object Compiler,也就是“元对象编译器”。Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源文转载 2020-08-06 19:43:22 · 298 阅读 · 0 评论 -
QT事件处理机制
事件简介QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发。QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期。常见的QT事件类型如下:键盘事件: 按键按下和松开鼠标事件: 鼠标移动,鼠标按键的按下和松开拖放事件: 用鼠标进行拖放滚轮事件: 鼠标滚轮滚动绘屏事件: 重绘屏幕的某些部分定时事件: 定时器到时焦点事件: 键盘焦点移动进入和离开事件: 鼠标移入widget之内,或是移出移动事件: widget的位置改变大小改变事件: widget的大小改变显示和隐转载 2020-08-06 19:17:47 · 138 阅读 · 0 评论 -
QT:资源文件作用及如何添加
资源文件的作用:1、一个应用程序中可能需要加载各种资源(如图标、文本翻译等),对于这些资源的管理,Qt有专门的资源管理系统,它是一个跨平台的资源机制,用于将程序运行时需要的资源以二进制的形式存储到可执行文件内部。因此如果将用到的资源,比如图标文件等,放在资源文件中,它将编译到可执行文件内部,这样就无需担心这些文件的丢失。2、在内存中,以一棵资源对象树来组织资源。此树在程序启动时被自动生成并且被 QFile 用来定位资源路径。你可以使用带有 “: /” 前缀的 QDir 从根目录开始遍历这棵树。3、Qt原创 2020-07-31 20:54:17 · 1127 阅读 · 0 评论 -
QT:IDE工具说明
1、欢迎窗口视图区新建或打开已有项目菜单新建或打开已有项目2、编辑源码或项目文件3、设计:界面编辑4、调试程序5、项目配置编译配置A、影子目录:便于移植B、环境变量【编译运行依赖配置】主要的编译依赖:头文件路径、库路径及库名、工具,等等主要的运行依赖:共享库路径C、其他的一般不改动编译流程和清除流程不改!!!运行配置:A、程序路径和当前路径B、环境变量6、帮助系统7、编译程序自动化编译,make工具根据Makefile的规则进行自动编译Makefile原创 2020-07-31 20:18:07 · 677 阅读 · 0 评论 -
QT:创建一个新项目
1、创建一个新项目2、选择项目模板3、项目名称及路径4、平台工具选择5、选择窗口模板6、完成项目定制7、选择本次编译要编译的目标8、交叉编译到ARM平台如果没有在windows下创建Android虚拟机,则只能编译不能运行。测试运行就拷贝到手机上安装运行。9、编译结果的目录位置...原创 2020-07-31 10:10:36 · 4205 阅读 · 0 评论