GUI
文章平均质量分 88
江湖名言,只要有UI的,UI的工作量就要占到80。。。
fanged
野生程序员。。。这里主要是一些学习笔记和心得。。。
注:标题带TODO的内容都是未完成,内容有可能不准确。觉得有帮助请:https://ko-fi.com/fanged
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LVGL5(PICO2移植3--LVGL)(TODO)
本文介绍了将LVGL图形库移植到Pico开发板的过程。主要内容包括:1)通过Git获取LVGL源码并修改CMake配置,关闭示例和演示以缩短编译时间;2)实现显示和触摸屏回调接口,包括双缓冲设置和SPI数据传输;3)重构主程序,初始化LVGL并创建显示缓冲区;4)展示了基本显示效果,并参考了Pico官方ST7789 LCD驱动示例,利用PIO和DMA实现高效数据传输。整个移植过程涉及底层驱动适配和性能优化,最终实现了LVGL在Pico平台的基本运行。原创 2025-11-26 17:27:31 · 170 阅读 · 0 评论 -
LVGL5(PICO2移植2--freertos)
本文介绍了在FreeRTOS环境下为Raspberry Pi Pico 2开发板添加LCD显示屏和触摸屏(TP)驱动的过程。主要步骤包括:1)搭建开发环境,使用CMake命令生成可执行文件;2)移植LCD和TP驱动代码,实现了SPI通信、屏幕初始化和触摸检测功能;3)创建了三个FreeRTOS任务分别控制LED、LCD和TP,其中LCD任务实现屏幕颜色切换,TP任务检测触摸坐标并通过串口输出。测试发现任务优先级调整(将TP任务优先级提高到3)能显著改善系统响应速度。文中提供了完整的硬件初始化、SPI通信和任原创 2025-11-26 01:03:08 · 363 阅读 · 0 评论 -
LVGL5(PICO2移植1--驱动)
本文详细记录了将LVGL图形库移植到树莓派Pico2开发板并驱动3.5寸ILI9488显示屏和XPT2046触摸芯片的全过程。主要内容包括:1)硬件连接方案,解决了引脚定义和供电问题;2)Micropython测试代码验证显示和触摸功能;3)LVGL移植关键步骤,实现了显示初始化、绘图缓冲区和刷新回调;4)触摸输入接口配置;5)最终集成方案和CMake构建配置。文章还总结了常见问题及优化建议,如SPI频率提升、双缓冲使用等性能优化方法,为嵌入式GUI开发提供了实用参考。原创 2025-11-01 13:24:42 · 186 阅读 · 0 评论 -
LVGL4(一个物联网界面)
本文介绍了一个基于LVGL的物联网监控界面实现方案,主要针对2寸LCD屏设计。系统分为控制区和显示区:控制区包含启动/停止按钮及传感器/采样间隔选择下拉框;显示区展示当前值、历史数据表格和折线图。代码采用LVGL库实现界面元素创建和事件处理,通过定时器模拟数据更新。相比Android和MFC,LVGL在资源受限设备上更具优势,但布局方式相对基础(需手动坐标或Flex布局)。文章还对比了三种GUI框架在语言特性、布局方式和线程机制等方面的差异,指出LVGL适合低成本终端开发。原创 2025-10-30 09:08:33 · 604 阅读 · 0 评论 -
LVGL3(Helloworld)
本文分析了LVGL图形库的两个入门示例:HelloWorld和Button实现。HelloWorld示例通过5行关键代码完成了背景设置、标签创建和文本显示等基础功能。Button示例展示了按键创建、位置大小设置和事件处理流程,其中按键回调函数通过获取子对象实现了文本动态更新。两个示例虽然简单,但包含了GUI开发的核心要素:信息输出和交互输入。作者指出代码本身不难理解,但环境配置较为复杂。这些示例为学习LVGL开发提供了基础参考,后续可进一步探索更复杂的GUI功能实现。原创 2025-10-29 23:48:51 · 510 阅读 · 0 评论 -
LVGL2(Windows模拟环境搭建)
文章摘要:作者详细记录了在Windows和WSL环境下安装LVGL模拟器的艰难过程。Windows安装遇到Git下载慢、依赖复杂、环境配置繁琐等问题,尝试vcpkg、MinGW、Chocolatey等多种方式均受阻。转用WSL后安装过程明显顺利,仅1小时完成,突显Linux更适合开发。文章还提供了扩展工具参考和官方资源链接,整体呈现了跨平台开发的环境差异与挑战。(150字)原创 2025-10-23 11:59:41 · 426 阅读 · 0 评论 -
树莓派3B驱动ST7735(内核)(代码篇)
本文分析了树莓派Linux内核中ST7735 LCD屏幕驱动源码的实现。主要内容包括:1. 驱动配置方式,通过设备树overlay文件adafruit18-overlay.dts进行硬件参数设置;2. 驱动核心框架fbtft,提供统一的小屏驱动支持,包含初始化序列、显存操作等基础功能;3. 驱动关键实现细节,如显存窗口设置(set_addr_win)、显示模式配置(set_var)和伽马校正(set_gamma)等;4. 与Python驱动实现的对比,指出内核驱动在功能完整性和性能优化上的优势。文章从源码层原创 2024-09-22 22:04:30 · 1051 阅读 · 0 评论 -
WebGL1(基础)
几个典型的WebGL网站https://webglsamples.org/aquarium/aquarium.htmlSpectorJS - Explore and Troubleshoot your WebGL scenes with easehttps://www.gameflare.com/webgl-games/判断一个 WebGL 程序是否使用了 GPU,可以通过以下几种方法进行检查:### 1. **使用浏览器的开发者工具**大多数现代浏览器都提供了开发者工具,可以用来检查 WebGL 的运行原创 2024-08-22 21:42:07 · 899 阅读 · 0 评论 -
WebGL3(WebGL or WebGPU?)
WebGL(Web Graphics Library)是一种基于OpenGL ES的JavaScript API,用于在网页浏览器中实现高性能的3D图形渲染,无需安装额外插件。它通过着色器(Shader)编程直接调用GPU能力,支持复杂的3D场景、物理模拟和实时渲染效果。WebGL完全集成于HTML5 Canvas,可与JavaScript、CSS3和Web API无缝协作,广泛应用于游戏开发、数据可视化、虚拟/增强现实(VR/AR)、科学模拟和交互式艺术等领域,为现代Web应用带来沉浸式视觉体验。原创 2025-05-25 14:29:38 · 456 阅读 · 0 评论 -
Cesium1--基础
Cesium 是一个开源的 JavaScript 3D 地理空间可视化引擎,专为构建高性能的虚拟地球和地图应用而设计。它支持从全球尺度到微观场景的三维数据渲染,广泛应用于测绘、智慧城市、军事仿真、气象分析等领域。集成高精度地形数据(如Cesium World Terrain),支持动态地形开挖、坡度分析。可加载(倾斜摄影/BIM)、(模型)、等格式。支持时间轴动画(如卫星轨迹模拟)、实时数据流(如气象变化)。基于WebGL,无需插件,兼容浏览器和移动端。原创 2025-05-13 14:38:32 · 458 阅读 · 0 评论 -
三维点云的处理
点云技术是通过离散的三维点集合来数字化现实世界的核心方法,其关键技术涵盖采集、处理和应用全流程。点云采集主要使用激光雷达(LiDAR),结构光扫描,多视角立体视觉也就是多摄像头。前阵看文章,好像也又但摄像头采集的。处理的部分是重点:统计离群值移除(SOR):剔除孤立的噪声点。体素网格滤波:降采样保持特征的同时减少数据量。ICP算法:迭代最近点对齐多视角扫描数据。NDT算法:基于概率分布匹配,适合大场景。PointNet++:直接处理无序点云,分类地面、建筑等。原创 2025-05-19 14:16:04 · 783 阅读 · 0 评论 -
Wayland/Weston
Wayland其实是一个协议,定义了client和compositor。compositor有点类似安卓的SurfaceFlinger,就是将各个client送过来的画面进行合成,最后送到KMS/DRM进行显示(在安卓里面这个叫HWC)。在linux上,这个compositor的实现就是Weston。Weston也算是Wayland的一个参考实现。Wayland的结构。原创 2024-09-12 19:01:35 · 360 阅读 · 0 评论 -
Hello Vulkan
简单的介绍如下:Vulkan 是一个跨平台的高性能图形和计算 API,由 Khronos Group 开发,旨在提供更高效的硬件控制和更低的 CPU 开销。与传统的 OpenGL 相比,Vulkan 提供了更细粒度的控制,支持多线程渲染,适用于现代 GPU 架构,广泛应用于游戏、虚拟现实、科学计算和移动图形等领域。Vulkan 的设计目标是最大化性能,同时保持跨平台兼容性,支持 Windows、Linux、Android 等操作系统。从主页可以看到很多精美的图,貌似都是Vulkan生成的。原创 2025-02-26 03:35:14 · 419 阅读 · 0 评论 -
LVGL UI 库(TODO)
还是老规矩,先上图。。。整体来说还是接着以前的,之前在树莓派上弄通了ST7735的驱动,framebuffer,现在终于能来看GUI了。原创 2024-05-05 04:00:52 · 485 阅读 · 0 评论 -
QT 1 Hello world
一般来说UI都是MVC的结构,也就是模型,界面,控制三分离。另外简单看了下,QT现在的框架其实非常大了。包含了非常多的东西。不光是普通桌面,还有嵌入式,分布式,内容挺多的。这个东西在以前MFC倒是没有,MFC都是界面直接拖。本来是想用C++的库来做的,但是最近实现太累,先用Python吧。后面如果还有时间,补一个。window = QWidget(),QWidget应该是QT的窗口类。最后一个window.show()和一个事件循环app.exec_(),这个都很好理解。找了一个QT的图,可以先看看。原创 2024-02-17 11:34:01 · 186 阅读 · 1 评论
分享