Sdl窗口实现web view

嵌入式图形库开发绚丽界面(lvgl、emwin、awtk) 早些年的单片机开发中,很多都是使用文字菜单界面,这种界面让人感觉非常的朴实无华,内容言简意赅,如果使用图形库进行开发,你的产品一下子就让别人觉得有点高级,更容易去接收它。对于现在来说,很多的嵌入式图形库都可以做出绚丽的界面,占用RAM小,网上资料也多,学习难度不大。下面仅介绍几款常用的图形库。 阅读详情

跟AI 1番探索之后发现,这个比较轻量级的,这个能实现我们需求的,通常有这个we bk it和,Mini blink,但是呢,后者因为过度的这个简化,它可能没有一些音视频的控制功能,未经考证,所以我们还是使用这个we bk it来进行相关操作

 

1. WebKit 预编译包官网/下载地址
 
- WebKitGTK+ 预编译包(Windows 版)官方获取渠道:webkitgtk.org

 之后点击右下角的releases stabletarball

里面的这个webkitGTK 2.50.1,啊,之后浏览器开始自动下载,下载完成之后解压

不想下载的同学,可以直接搜我的免费资源


 
2. Windows 10 + VS Code + CMake 配置 WebKit 预编译环境步骤
 
前提:已配置好 SDL、LVGL、C++ SDK 和 CMake 项目结构,仅需新增 WebKit 依赖。
 
步骤 1:编译
 

 由于我们是在WINDOWS端调试,我们直接把这个报错信息给它注释掉,设置成win

之后呢,又显示缺少strawberry perl

 我们看到这个官网进去有一个latest release,我们点击这个msi文件下载下来

 看到这个说明PERl的安装已经完成了注意此时一定要重启vs code不然是识别不到的。

 随时出现了这种奇怪的问题我们只需要删除build文件夹再重新刷新一下cm ake插件栏然后项目状态就可以找见

 之后呢,再点击一下配置按钮,就可以为我们当前的web ki TG TK项目来进行一个配置

此时我们发现依旧报错,他似乎总是默认的匹配到了我们另外一个插件eide当中使用的perl,此时,我们尝试使用set指令

set(PERL_EXECUTABLE "你的perl安装目录/bin/perl.exe" CACHE FILEPATH "Path to Perl executable")

此时又显示没有装这个ruby,最低需要2.5的版本

 这个的安装呢,也是非常的简单,直接搜索它的官网,然后就能找到一个链接,点击下载就是了

为了避免后续的一些问题,我们还是选择这个with devkit来下载,但是呢,最终发现这个链接是github的链接,实在是没有办法下下来,最终我们在gitcode的这成功找见了它的一个镜像,我们直接用它就好

结果呢,又又又又又报错了,这次又显示是一个叫做g perf,的一个东西,它没有安装,紧接着呢,我们一定要去搜gperf WINDOWS,要不然你下载的是linux的,没有办法编译

这时候呢,一定要注意,我们成功安装这个gperf之后一定要在cmake里面按照上面的方式添加

set(GPERF_ EXECUTABLE 你的gperf.exe的路径)

否则在配置的时候是识别不到你的这个exe

本以为一切已经万事大吉,结果最终再次发生报错,说是没有权限,这大概是因为我的整个操作都是在7z点zip这个软件解码之后没有成功复制,只好在这个WINDOWS自带的c目录底下的temp当中操作的大概可可能,这是一个平常应用没有办法操作到的地方,而且有一个更恶心的情况就是WINDOWS你把temp里面的东西是没有办法拷贝到桌面的几次均为失败,你只能给它复制到别的盘里边

 


步骤 2:配置 CMakeLists.txt(关联 WebKit 依赖)
 
在已有 CMake 项目的  CMakeLists.txt  中,新增 WebKit 的头文件路径、库路径和链接库,示例代码如下(需替换你的 WebKit 解压路径):
 
cmake   
# 1. 设置 WebKit 预编译包路径(替换为你的实际解压路径)
set(WEBKIT_DIR "D:/ThirdParty/webkitgtk-2.42.5-win64")

 

 

# 2. 引入 WebKit 头文件(让编译器找到 #include <webkit2/webkit2.h>)
include_directories(${WEBKIT_DIR}/include)
include_directories(${WEBKIT_DIR}/include/webkit2)
include_directories(${WEBKIT_DIR}/include/gtk-3.0)  # WebKit 依赖 GTK,需引入其头文件

# 3. 链接 WebKit 库路径(让链接器找到 .lib 文件)
link_directories(${WEBKIT_DIR}/lib)

# 4. 关联 WebKit 所需的库文件(核心库,无需改)
set(WEBKIT_LIBS 
    webkit2gtk-4.0.lib  # WebKit 核心库
    gtk-3.lib           # 依赖的 GTK 库
    gdk-3.lib           # 依赖的 GDK 库
    gobject-2.0.lib     # 依赖的 GLib 库
    glib-2.0.lib        # 依赖的 GLib 库
)

# 5. 把 WebKit 库链接到你的项目目标(替换为你的项目目标名,如 "tv_box_demo")
target_link_libraries(你的项目目标名 
    ${WEBKIT_LIBS}
    # 保留你已有的 SDL、LVGL 等链接库
    SDL2.lib
    lvgl.lib
)
 
 
步骤 3:处理动态库(避免运行时“找不到 .dll”错误)
 
WebKit 预编译包的  bin  目录下有大量  .dll  文件(如  webkit2gtk-4.0-37.dll 、 gtk-3-0.dll ),需让程序运行时能找到这些文件,二选一即可:
 
1. 简单方案:将  D:\ThirdParty\webkitgtk-2.42.5-win64\bin  下的 所有 .dll 文件,复制到你的 CMake 项目编译输出目录(如  build/Debug  或  build/Release ,与生成的  .exe  同目录);
2. 长效方案:将  D:\ThirdParty\webkitgtk-2.42.5-win64\bin  添加到系统环境变量  Path  中(添加后需重启 VS Code,让环境变量生效)。
 
步骤 4:验证配置(写测试代码编译运行)
 
在项目中写一段简单的 WebKit 初始化代码,验证是否能正常编译(无需运行,先确认无编译错误):
 
cpp   
#include <webkit2/webkit2.h>
#include <gtk/gtk.h>

int main(int argc, char* argv[]) {
    // 初始化 GTK(WebKit 依赖 GTK)
    gtk_init(&argc, &argv);
    // 创建 WebView 实例(验证头文件和库是否关联成功)
    WebKitWebView* web_view = WEBKIT_WEB_VIEW(webkit_web_view_new());
    // 释放资源
    g_object_unref(web_view);
    return 0;
}
 
 
在 VS Code 中通过 CMake 编译项目,若无“头文件找不到”“未定义符号”等错误,说明 WebKit 预编译环境配置完成。
 
需要我帮你生成一份适配你现有项目结构的  CMakeLists.txt  片段,或者补充 WebKit 与 SDL 结合的测试代码吗?

 

SDL Trados 2021 SR2 CU9完整安装指南:从下载到WebView2配置一步到位 本文提供SDL Trados 2021 SR2 CU9的完整安装与配置指南,涵盖从官方下载地址获取安装包、系统环境准备、详细安装步骤,到解决关键的WebView2运行时依赖等核心环节。文章深入解析了安装原理、常见陷阱及性能优化建议,旨在帮助翻译专业人士打造稳定高效的本地化工作环境。 阅读详情

相关推荐

XSS攻击深度解析:从原理到实战防御的Web安全必修课

跨站脚本攻击是Web安全领域的核心威胁之一,其本质是攻击者通过注入恶意脚本,在用户浏览器中执行非授权操作。攻击原理基于Web应用对用户输入数据的过度信任,未进行充分验证与编码,导致恶意代码被解析执行。从技术价值看,理解XSS的攻防机制是构建安全Web应用的基石,能有效保护用户数据与系统完整性。应用场景广泛覆盖论坛、电商、社交平台等所有涉及用户交互的Web服务。本文聚焦反射型、存储型与DOM型三大XSS攻击变种,结合输入验证、输出编码与内容安全策略等实战方案,深入剖析如何通过纵深防御体系应对Cookie窃取、

weixin_34411563的博客 346

项目分享 | 基于RK3568和LVGL的自定义平板原型机

本文分享了一个基于RK3568和LVGL的自定义平板原型机项目,主要用到文件IO、数据结构、系统编程、网络编程、LVGL的知识点,适合具有linux基础的伙伴们用作总结和复盘学习,以巩固知识点,欢迎大家友好交流、分享经验、共同进步!

hry_7419的博客 1789

XSS攻击深度解析:从原理到防御的Web安全实战指南

跨站脚本攻击(XSS)是一种常见的Web安全漏洞,其核心原理在于攻击者能够将恶意脚本注入到受信任的网页中,当用户浏览该页面时,恶意脚本会被执行。这种攻击利用了浏览器对当前域的信任机制,通过构造特定的恶意载荷,攻击者可以窃取用户的登录凭证、监听键盘输入,甚至冒充用户进行非法操作。在Web安全领域,XSS长期位居OWASP Top 10威胁前列,其技术价值在于揭示了输入验证与输出编码的重要性。在实际应用场景中,XSS攻击主要分为反射型、存储型和DOM型三种类型,每种类型都有其独特的利用方式和危害等级。为了有效防

weixin_33737774的博客 408

LVGL之学习篇(一)

本编文章主要讲述了lvgl如何快速上手,方便新手快速入门

weixin_41080308的博客 3338

C++图形编程:绘制可移动的椭圆和矩形

在编程时,选择合适的图形库至关重要。它决定了你能用什么方式绘制图形,以及效率和性能的高低。以下是一些在IT业界广泛使用的图形库及其特点:Cairo:Cairo是一个矢量图形库,广泛用于2D图形渲染。它支持多种输出目标,包括X Window System、Win32、Quartz、OpenGL、PDF、PS、SVG等。Cairo的特点是它具有高质量的抗锯齿和多平台支持。:Qt是一个跨平台的应用程序框架,广泛用于开发GUI应用程序。

weixin_42551310的博客 995

webview_sdl_krkr

webview_sdl_krkr 中文 把krkrsdl2( )编译成webassembly嵌入到安卓webview中的工程,配合nanohttpd( )拉起http服务实现在安卓手机上的webview运行krkr的目的 代码可直接克隆下来用android studio编译运行,建议在真机上运行以获取到手机的真实分辨率和屏幕分辨率,在红米K30下运行结果如下: 目前存在的问题 不同型号的webview对webassembly的支持差异融合,可能部分无法正常运行,后面会统一换成腾讯x5的内核(但是广告有点多,还在随意酌情使用这种自制垃圾) 警告:里面的人物立绘禁止使用在本项目以外的其他一切用途 英语 使用krkrsdl2( )编译到webassembly中并嵌入到Android WebView项目中。 使用nanohttpd( )在Android上启动HTTP服务,以达到在Andro

AWTK-WIDGET-WEB-VIEW 实现笔记 (3) - MacOS

MacOS 上实现 AWTK-WIDGET-WEB-VIEW 有点麻烦,主要原因是没有一个简单的办法将一个 WebView 嵌入到一个窗口中。所以,我们只能通过创建一个独立的窗口来实现。

国产开源 GUI 引擎 AWTK 1289

LVGL 7.0的QT的模拟器工程

LVGL 7.0的QT的模拟器工程

AWTK-WIDGET-WEB-VIEW 实现笔记 (4) - Ubuntu

Ubuntu 上实现 AWTK-WIDGET-WEB-VIEW 开始以为很简单,后来发现是最麻烦的。因为 Ubuntu 上的 webview 库是 基于 GTK 的,而 AWTK 是基于 X11 的,两者的窗口系统不同,所以期间踩了几个大坑。

国产开源 GUI 引擎 AWTK 1354

ROS2实战:打造智能巡检机器人的关键技术与实现

本文详细介绍了基于ROS2和Navigation2构建智能巡检机器人的完整实战流程。通过设计主从协作的事件驱动架构,实现了机器人在已知地图中的自动导航、定点语音播报和环境图像采集功能。文章涵盖了从环境搭建、仿真配置到核心控制节点、语音服务与图像记录模块的代码实现,为开发者打造实用的自动巡检机器人提供了清晰的技术指南。

weixin_29031057的博客 222

AI Agent ReAct架构设计模型剖析

ReAct通过"思考-行动-观察"循环运作:智能体先进行自然语言推理,再调用外部工具执行行动,观察结果后继续推理直至解决问题。这种架构提高了透明度和准确性,减少幻觉风险,使LLM能主动分解任务并利用外部数据源。实现关键在于精心设计的提示模板,引导LLM按结构化格式响应,而非依赖模型固有能力。

weixin_43939320的博客 1249

Flutter Windows通过嵌入Native窗口实现渲染视频

使用flutter在Windows上渲染视频,目前掌握的至少有2种方法(第二章、第四章),但是性能都不是最佳,而且需要将数据转换成rgba才能渲染。如果能使用win32窗口,直接通过句柄渲染,那就可以达到与原生Windows渲染使用一致的效果,可以使用sdl渲染yuv,以及dxva2解码后d3d9表面直接渲染到窗口全程在gpu上操作。本文将介绍如何在flutter程序嵌入win32窗口并且渲染视频。但是需要注意的是目前的实现只支持win10及以上版本。

codeofcc的博客 2768

单细胞测序流程(五)t-sne聚类分析和寻找marker基因

系列文章目录 单细胞测序流程(一)简介与数据下载 单细胞测序流程(二)数据整理 单细胞测序流程(三)质控和数据过滤——Seurat包分析,小提琴图和基因离差散点图 单细胞测序流程(四)主成分分析——PCA 本期主讲内容——t-sne聚类分析和寻找marker基因 介绍:T-SNE是一种用于探索高维数据的非线性降维算法。它将多维数据映射到适合于人类观察的两个或多个维度。 一、课前准备 之前所使用的数据 R语言的IDE 二、过程 聚类分析的目的是根据细胞的差别所进行细胞分群,两个..

qq_45478665的博客 2万+

AWTK-WIDGET-WEB-VIEW 实现笔记 (2) - Windows

在 Windows 平台上的实现,相对比较顺利,将一个窗口嵌入到另外一个窗口是比较容易的事情。

国产开源 GUI 引擎 AWTK 3335

GPU运维面试题

【代码】GPU运维面试题。

u011220233的博客 695

nvidia系列教程-AGX-Orin基础环境搭建

NVIDIA Jetson AGX Orin 是一款功能强大的嵌入式AI平台,专为需要高性能和低功耗的边缘计算应用设计。无论是自动驾驶、机器人,还是智能监控系统,Jetson AGX Orin 都能为这些应用提供强大的计算能力。本篇博客将为大家详细介绍如何在AGX Orin(32GB)上搭建基础开发环境,包括系统安装、CUDA和cuDNN的配置等,帮助你快速上手这个强大的平台。架构: 搭载 56 个 Tensor Core 的 1792 核 NVIDIA Ampere c GPUCUDA Cores。

flypig has a dream! 2796

Silk.NET 窗口创建失败排查指南:深入解析 PlatformNotSupportedException “Couldn‘t find a suitable windowing platform“

本文是面向 Silk.NET 开发者的故障排查指南,聚焦于调用 `Window.Create` 创建窗口时最常见的异常:`PlatformNotSupportedException: Couldn't find a suitable windowing platform`。读完本文,你将能准确判断该异常的两种根因(原生窗口库无法加载、窗口后端不支持当前平台),掌握安装 VC++ 运行库、手动提供

gitblog_00140的博客 511

ScanNetV2 数据集讲解和选择性下载

写在前面的话: 不可转载!!!!!!!!!!!! ScanNetV2一共1.2T,数据太大本文会简单讲解如何下载自己想要的文件,并附上修改后的下载程序 ScanNetV2:http://www.scan-net.org/ 简介 ScanNetV2的作者是斯坦福大学的博士,其团队通过收集RGB-D的视频序列,通过ipad应用加深传感器而收集的,然后视频会被上传到服务器,并被自动重建。然后,视频会被给到亚马逊 Mechanical Turk,将标注工作众包出去。ScanNetV2是RGB-D数据集,.

qq_35781447的博客 2万+

实战指南:如何高效播放 .pcm 音频文件

使用struct模块明确指定字节序测试时用已知音频文件验证基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。架构理解:掌握实时语音应用的完整技术链路(ASR→LLM→TTS)技能提升:学会申请、配置与调用火山引擎AI服务定制能力:通过代码修改自定义角色性格与音色,实现“从使用到创造”

2600_94959961的博客 622

SAP Fiori Launchpad 概述

SAP Fiori launchpad 是托管 SAP Fiori 应用程序的 shell,并为应用程序提供导航、个性化、嵌入式支持和应用程序配置等服务。SAP Fiori Launchpad 是移动和桌面设备上 SAP Fiori 应用程序的入口点。启动板显示带有图块的主页,其中可以显示实时状态指示器,例如打开的任务数量。每个图块代表用户可以启动的业务应用程序。这包括 SAP Business Suite 事务应用程序和 SAP Smart Business 分析应用程序。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 930

Uni-App 使用极光推送完整指南

Uni-App集成极光推送的完整指南:从注册极光账号到代码实现。包含前期准备(获取AppKey、注册厂商账号)、Uni-App配置(插件导入、初始化代码)、高级功能(角标设置、Java后台接口)及常见问题排查。详细说明了推送监听、registrationID获取、消息接收处理等核心功能实现步骤,并提供两种推送接口示例(按平台推送和统一推送)。适合需要在Uni-App项目中实现推送功能的开发者参考。

cyj0919的博客 425

Web安全实战:从IDOR到JWT绕过,详解越权漏洞的挖掘与防御

越权漏洞是Web应用安全中常见的高危风险,它破坏了核心的权限校验逻辑,允许攻击者访问或操作未授权的数据或功能。其原理在于服务器过度信任客户端传入的标识参数(如用户ID)或令牌,未能与当前会话身份进行强制比对。理解并防范此类漏洞,对于保障业务数据安全具有重要价值,常见于用户资料查询、订单管理、后台系统等涉及多用户数据隔离的场景。本文以实战靶场为例,深入剖析了基于ID参数的水平越权、JWT令牌算法绕过等典型漏洞的利用手法与修复方案,并探讨了自动化测试工具在提升渗透测试效率中的应用。

weixin_30617797的博客 403

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

GUI半透明渲染中的ALPHA通道:直通与预乘模式解析

在数字图像与图形界面渲染中,RGBA颜色系统不仅记录红绿蓝分量,还包含决定像素透明度的Alpha通道。理解Alpha通道的不同存储与混合方式,是避免界面出现黑边、灰蒙或颜色渐深等异常的关键。直通ALPHA与预乘ALPHA是两种核心像素格式:前者保留原始色彩值,后者将RGB预先乘以Alpha,从而简化Source Over合成公式并减少插值伪影。现代GUI框架如Skia、Direct2D、Qt等往往默认使用预乘模式,若资源格式与内部管线语义不一致,就会产生边缘色差、半透明区域发暗或圆角裁剪异常。从Web Ca

weixin_33787529的博客 303

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

gui窗口遮挡算法_软件更新丨AWTK 1.2 发布,国产开源 GUI 引擎

AWTK全称为Toolkit AnyWhere,是ZLG倾心打造的一套基于C语言开发的GUI框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的GUI引擎,并支持跨平台同步开发,一次编程,终生使用。AWTK当前升级到了v1.2版本,相对于v1.1,我们完善了许多细节,增加了部分特性、控件以及API等,让AWTK支持更多的功能和更炫酷的效果。 1.2版本更新的内容细节完善输入法...

weixin_34496367的博客 196

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

网易白帽子黑客训练营笔记(2)

安全测试 DVWA靶场漏洞详解 安全工具讲解 网易白帽子黑客训练营笔记2 web安全体系

weixin_52180702的博客 3934

SFML入门总览:这款免费C++跨平台多媒体库凭什么成为独立游戏开发首选

SFML(Simple and Fast Multimedia Library)是一款免费、跨平台的 C++ 多媒体库,一次编写即可在 Windows、Linux、macOS、Android、iOS 和 WebAssembly 上运行。它为独立游戏开发提供了窗口管理、2D 图形渲染、音频播放与录制、网络通信等核心能力,接口简洁、性能快速,被全球无数小游戏和商业作品采用。本文将带你快速了解 SFML

gitblog_00518的博客 439
上一篇: SDL+WebGpu跨平台加速学习笔记
python_use
博客等级 码龄5年 430粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值