LVGL 8.2 菜单

2023-05-16

定义及声明

enum {
    LV_MENU_ITEM_BUILDER_VARIANT_1,
    LV_MENU_ITEM_BUILDER_VARIANT_2
};   
typedef uint8_t lv_menu_builder_variant_t;
static void back_event_handler(lv_event_t* e);
static void switch_handler(lv_event_t* e);
lv_obj_t* root_page;
static lv_obj_t* create_text(lv_obj_t* parent, const char* icon, const char* txt,
    lv_menu_builder_variant_t builder_variant);
static lv_obj_t* create_slider(lv_obj_t* parent,
    const char* icon, const char* txt, int32_t min,int32_t max, int32_t val);
static lv_obj_t* create_switch(lv_obj_t* parent,
    const char* icon, const char* txt, bool chk);

返回键事件处理

static void back_event_handler(lv_event_t* e)
{
    lv_obj_t* obj = lv_event_get_target(e);  // 获取产生事件的对象
    lv_obj_t* menu = lv_event_get_user_data(e);  // 获取用户数据
    if (lv_menu_back_btn_is_root(menu, obj)) { // 根菜单的返回键
        lv_obj_t* mbox1 = lv_msgbox_create(NULL, "Hello", "Root back btn click.", NULL, true);  //创建消息对话框
        lv_obj_center(mbox1);  // 居中显示
    }
}

switch键事件处理

static void switch_handler(lv_event_t* e)
{
    lv_event_code_t code = lv_event_get_code(e);  //获取对象产生的事件码
    lv_obj_t* menu = lv_event_get_user_data(e); // 获取用户数据
    lv_obj_t* obj = lv_event_get_target(e); // 获取产生事件的对象
    if (code == LV_EVENT_VALUE_CHANGED) {  // LV_EVENT_VALUE_CHANGED事件处理
        if (lv_obj_has_state(obj, LV_STATE_CHECKED)) { // 选中处理
            lv_menu_set_page(menu, NULL);   // 清除主菜单界面显示
            lv_menu_set_sidebar_page(menu, root_page);// Set menu page to display in sidebar
            lv_event_send(lv_obj_get_child(lv_obj_get_child(lv_menu_get_cur_sidebar_page(menu), 0), 0), LV_EVENT_CLICKED, NULL);
        }
        else {  // 未选中处理
            lv_menu_set_sidebar_page(menu, NULL); //取消菜单sidebar显示
            lv_menu_clear_history(menu); /* Clear history because we will be showing␣
            ,→the root page later */
            lv_menu_set_page(menu, root_page); // 设置菜单主界面
        }
    }
}

创建文本

static lv_obj_t* create_text(lv_obj_t* parent, const char* icon, const char* txt,
    lv_menu_builder_variant_t builder_variant)
{
    lv_obj_t* obj = lv_menu_cont_create(parent);  // 创建菜单cont容器对象
    lv_obj_t* img = NULL;
    lv_obj_t* label = NULL;
    if (icon) { 
        img = lv_img_create(obj);  // 创建图片对象
        lv_img_set_src(img, icon);  // 设置图片显示资源
    }
    if (txt) {
        label = lv_label_create(obj);   //创建label
        lv_label_set_text(label, txt);  //设置label显示内容
        lv_label_set_long_mode(label, LV_LABEL_LONG_SCROLL_CIRCULAR); //循环滚动模式
        lv_obj_set_flex_grow(label, 1);
    }
    if (builder_variant == LV_MENU_ITEM_BUILDER_VARIANT_2 && icon && txt) {
        lv_obj_add_flag(img, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK); // 添加LV_OBJ_FLAG_FLEX_IN_NEW_TRACK标志
        lv_obj_swap(img, label); // Swap the positions of two objects
    }
    return obj;
}

创建slider

static lv_obj_t* create_slider(lv_obj_t* parent, const char* icon, const char* txt, int32_t min, int32_t max,
    int32_t val)
{
    lv_obj_t* obj = create_text(parent, icon, txt, LV_MENU_ITEM_BUILDER_VARIANT_2); // 创建自定义text
    lv_obj_t* slider = lv_slider_create(obj);  // 创建slider对象
    lv_obj_set_flex_grow(slider, 1);
    lv_slider_set_range(slider, min, max); // Sets the width or height (on main axis) to grow the object in order fill the free space
    lv_slider_set_value(slider, val, LV_ANIM_OFF); // 设置slider的值
    if (icon == NULL) {
        lv_obj_add_flag(slider, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK); // 添加LV_OBJ_FLAG_FLEX_IN_NEW_TRACK标志
    }
    return obj;
}

创建switch

static lv_obj_t* create_switch(lv_obj_t* parent, const char* icon, const char* txt, bool chk)
{
    lv_obj_t* obj = create_text(parent, icon, txt, LV_MENU_ITEM_BUILDER_VARIANT_1); // 创建自定义text
    lv_obj_t* sw = lv_switch_create(obj);  // 创建switch开关
    lv_obj_add_state(sw, chk ? LV_STATE_CHECKED : 0); // 添加事件
    return obj;
}

Complex Menu

static void lv_example_menu_5(void)
{
    lv_obj_t* menu = lv_menu_create(lv_scr_act());  // 创建菜单对象
    lv_color_t bg_color = lv_obj_get_style_bg_color(menu, 0);  //获取菜单背景色
    if (lv_color_brightness(bg_color) > 127) {  // 背景颜色亮度大于127
        lv_obj_set_style_bg_color(menu, lv_color_darken(lv_obj_get_style_bg_color(menu, 0), 10), 0); //设置背景颜色
    }
    else {
        lv_obj_set_style_bg_color(menu, lv_color_darken(lv_obj_get_style_bg_color(menu, 0), 50), 0);//设置背景颜色
    }
    lv_menu_set_mode_root_back_btn(menu, LV_MENU_ROOT_BACK_BTN_ENABLED);// 使能根菜单返回键
    lv_obj_add_event_cb(menu, back_event_handler, LV_EVENT_CLICKED, menu);//添加返回键点击事件
    lv_obj_set_size(menu, lv_disp_get_hor_res(NULL), lv_disp_get_ver_res(NULL));// 设置大小
    lv_obj_center(menu); // 居中显示
    lv_obj_t* cont;
    lv_obj_t* section;
    /*Create sub pages*/
    lv_obj_t* sub_mechanics_page = lv_menu_page_create(menu, NULL); //创建菜单界面
    lv_obj_set_style_pad_hor(sub_mechanics_page, lv_obj_get_style_pad_left(lv_menu_get_main_header(menu), 0), 0); //设置水平PAD间距
    lv_menu_separator_create(sub_mechanics_page);  //menu separator
    section = lv_menu_section_create(sub_mechanics_page); // Create a menu section object
    create_slider(section, LV_SYMBOL_SETTINGS, "Velocity", 0, 150, 120); // 创建Velocity slider
    create_slider(section, LV_SYMBOL_SETTINGS, "Acceleration", 0, 150, 50);// 创建Acceleration slider
    create_slider(section, LV_SYMBOL_SETTINGS, "Weight limit", 0, 150, 80); // 创建Weight limit slider
    lv_obj_t* sub_sound_page = lv_menu_page_create(menu, NULL); // 创建sub_sound_page菜单界面
    lv_obj_set_style_pad_hor(sub_sound_page, lv_obj_get_style_pad_left(lv_menu_get_main_header(menu), 0), 0);//设置水平PAD间距
    lv_menu_separator_create(sub_sound_page);   //menu separator
    section = lv_menu_section_create(sub_sound_page);   // Create a menu section object
    create_switch(section, LV_SYMBOL_AUDIO, "Sound", false); // 创建Sound switch开关
    lv_obj_t* sub_display_page = lv_menu_page_create(menu, NULL);  // 创建sub_display_page 菜单界面
    lv_obj_set_style_pad_hor(sub_display_page, lv_obj_get_style_pad_left(lv_menu_get_main_header(menu), 0), 0); //设置水平PAD间距
    lv_menu_separator_create(sub_display_page); //menu separator
    section = lv_menu_section_create(sub_display_page); // Create a menu section object
    create_slider(section, LV_SYMBOL_SETTINGS, "Brightness", 0, 150, 100);  // 创建 Brightness slider

    lv_obj_t* sub_software_info_page = lv_menu_page_create(menu, NULL); // 创建sub_software_info_page 菜单界面
    lv_obj_set_style_pad_hor(sub_software_info_page, lv_obj_get_style_pad_left(lv_menu_get_main_header(menu), 0), 0); //设置水平PAD间距
    section = lv_menu_section_create(sub_software_info_page); // Create a menu section object
    create_text(section, NULL, "Version 1.0", LV_MENU_ITEM_BUILDER_VARIANT_1);// 创建显示版本文本"Version 1.0"
    lv_obj_t* sub_legal_info_page = lv_menu_page_create(menu, NULL); // 创建sub_legal_info_page 菜单界面
    lv_obj_set_style_pad_hor(sub_legal_info_page, lv_obj_get_style_pad_left(lv_menu_get_main_header(menu), 0), 0);  //设置水平PAD间距
    section = lv_menu_section_create(sub_legal_info_page);// Create a menu section object
    for (uint32_t i = 0; i < 15; i++) {
        create_text(section, NULL,
            "This is a long long long long long long long long long text, if it is long enough it may scroll.",
            LV_MENU_ITEM_BUILDER_VARIANT_1);
    }  //创建15行文本
    lv_obj_t* sub_about_page = lv_menu_page_create(menu, NULL);// 创建sub_about_page 菜单界面
    lv_obj_set_style_pad_hor(sub_about_page, lv_obj_get_style_pad_left(lv_menu_get_main_header(menu), 0), 0); //设置水平PAD间距
    lv_menu_separator_create(sub_about_page);  //menu separator
    section = lv_menu_section_create(sub_about_page); // Create a menu section object
    cont = create_text(section, NULL, "Software information", LV_MENU_ITEM_BUILDER_VARIANT_1); // Software information项
    lv_menu_set_load_page_event(menu, cont, sub_software_info_page);  //加载cont到menu,设置跳转界面sub_software_info_page

    cont = create_text(section, NULL, "Legal information", LV_MENU_ITEM_BUILDER_VARIANT_1);  // Legal information项
    lv_menu_set_load_page_event(menu, cont, sub_legal_info_page);  //加载cont到menu,设置跳转界面sub_legal_info_page
    lv_obj_t* sub_menu_mode_page = lv_menu_page_create(menu, NULL);  // 创建sub_menu_mode_page 菜单界面
    lv_obj_set_style_pad_hor(sub_menu_mode_page, lv_obj_get_style_pad_left(lv_menu_get_main_header(menu), 0), 0);//设置水平PAD间距
    lv_menu_separator_create(sub_menu_mode_page);  //menu separator
    section = lv_menu_section_create(sub_menu_mode_page); // Create a menu section object
    cont = create_switch(section, LV_SYMBOL_AUDIO, "Sidebar enable", true); // 创建Sidebar enable开关
    lv_obj_add_event_cb(lv_obj_get_child(cont, 2), switch_handler, LV_EVENT_VALUE_CHANGED, menu); // 添加LV_EVENT_VALUE_CHANGED事件
    /*Create a root page*/
    root_page = lv_menu_page_create(menu, "Settings"); // 创建Settings 菜单界面
    lv_obj_set_style_pad_hor(root_page, lv_obj_get_style_pad_left(lv_menu_get_main_header(menu), 0), 0); //设置水平PAD间距
    section = lv_menu_section_create(root_page); // Create a menu section object
    cont = create_text(section, LV_SYMBOL_SETTINGS, "Mechanics", LV_MENU_ITEM_BUILDER_VARIANT_1);  // 创建Mechanics菜单子项
    lv_menu_set_load_page_event(menu, cont, sub_mechanics_page);//加载cont到menu,设置跳转界面sub_mechanics_page
    cont = create_text(section, LV_SYMBOL_AUDIO, "Sound", LV_MENU_ITEM_BUILDER_VARIANT_1);  // 创建Sound菜单子项
    lv_menu_set_load_page_event(menu, cont, sub_sound_page); //加载cont到menu,设置跳转界面sub_sound_page
    cont = create_text(section, LV_SYMBOL_SETTINGS, "Display", LV_MENU_ITEM_BUILDER_VARIANT_1); // 创建Sound菜单子项
    lv_menu_set_load_page_event(menu, cont, sub_display_page);//加载cont到menu,设置跳转界面sub_display_page
    create_text(root_page, NULL, "Others", LV_MENU_ITEM_BUILDER_VARIANT_1); // 创建Others菜单子项
    section = lv_menu_section_create(root_page); // Create a menu section object
    cont = create_text(section, NULL, "About", LV_MENU_ITEM_BUILDER_VARIANT_1); // 创建About菜单子项
    lv_menu_set_load_page_event(menu, cont, sub_about_page);//加载cont到menu,设置跳转界面sub_about_page
    cont = create_text(section, LV_SYMBOL_SETTINGS, "Menu mode", LV_MENU_ITEM_BUILDER_VARIANT_1);// 创建Menu mode菜单子项
    lv_menu_set_load_page_event(menu, cont, sub_menu_mode_page);//加载cont到menu,设置跳转界面sub_menu_mode_page
    lv_menu_set_sidebar_page(menu, root_page);// 设置菜单sidebar风格显示
    lv_event_send(lv_obj_get_child(lv_obj_get_child(lv_menu_get_cur_sidebar_page(menu), 0), 0), LV_EVENT_CLICKED, NULL); //发送点击事件
}

运行效果

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LVGL 8.2 菜单 的相关文章

  • lvgl page manage 代码学习

    64 file lv 100ask page manager c INCLUDES include 34 lv 100ask page manager h 34 if LV USE 100ASK PAGE MANAGER 61 0 DEFI
  • LVGL lv_label标签控件(5)

    lv label 相关API在lv label h中 文本模式 span class token keyword enum span span class token punctuation span span class token co
  • LVGL lv_page页面控件(23)

    lv page 页面控件 xff0c 是由2个lv cont容器控件构成 xff0c 其中一个容器作为lv page页面控件的背景层 xff0c 另一个容器作为lv page页面控件的载体 xff0c 此载体存放其他任何子对象 xff0c
  • lvgl显示中文和自定义图标

    lvgl显示中文和自定义图标 显示中文 制作字库 lvgl字库在线制作网址 https lvgl io tools fontconverter 下面以制作 按钮 这两个汉字字库为例 首先选择一个字体文件 可以在网上找 xff0c 也可以去电
  • LVGL——PC模拟器仿真模拟+VS2017

    目录 LVGL介绍移植说明资源下载环境搭建编译运行 本文只针对当时的LVGL v7 xff0c LVGL迭代过程中变化较大 xff0c 部分接口有可能做调整 本文仅供参考 LVGL介绍 官网 xff1a https lvgl io 官方在线
  • LVGL 优化帧率技巧

    目录标题 前文未优化版本LVGL帧率限制刷屏方法效率代码优化等级编译器版本LVGL显存单buffer非全尺寸双buffer全尺寸双buffer 本文只针对当时的LVGL v7 xff0c LVGL迭代过程中变化较大 xff0c 部分接口有可
  • 三.LVGL学习——(Buttons styles)

    三 LVGL学习 xff08 Buttons styles xff09 1 按钮对象样式 2 程序 定义三个lv style t变量 static lv style t style btn 按钮1按下前的样式变量 static lv sty
  • LVGL(二) SquareLine_Studio1.0.5 可视化编程环境搭建

    一 下载 SquareLine Studio1 0 5 官网链接 https squareline io CS sanDN链接 19条消息 SquareLine Studio Setup1 0 5免积分下载 智能家居文档类资源 CSDN文库
  • LVGL学习笔记

    文章目录 前言 一 软件安装 1 VSCode安装 2 MSYS2安装 二 配置环境 1 添加环境变量 2 配置msys2环境 3 配置VSCode 三 运行lvgl示例 前言 最近需要使用LittlevGL 以下简称lvgl 做ARM开发
  • 简单的LVGL按键例程

    以下是一个简单的LVGL按键例程 使用LVGL的按键事件来处理按钮的单击和长按操作 include lvgl lvgl h void btn click action lv obj t obj 处理按钮单击事件 void btn long
  • RV1109 LVGL UI开发

    RV1109 LVGL UI开发 前面在使用RK的RV1109平台用于产品中 使用的是QT做的UI 主要是继承原来海思平台的产品 随着分辨率的提高 UI响应也慢了不少 试着在RV1109上使用LVGL看看效果如何 RV1109使用的是DRM
  • 【LVGL事件(Events)】事件在不同组件上的应用(一)

    点击 滑动 输入 数字改变等等都可触发事件 事件就是针对不同的操作做出相对应的反应 最近看到组态屏 这玩意开发起来好像挺简单的 哈哈哈 研究完LVGL的事件就看看这个 LVGL事件 Events 事件代码 喜暖知寒的博客 CSDN博客LVG
  • 【LVGL】ANIM(动画)时间线学习

    时间线 timeline 有时候需要同时播放较多动画 此时如果逐个播放的话 需要逐个为动画设计延时 不方便安排 此时 可以使用 LVGL 提供的时间线 timeline 统一安排各个动画 时间线的创建非常简单 首先 创建一系列动画 但先不调
  • LVGL学习笔记

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 硬件要求 二 移植 1 准备工作 2 文件准备 3 加入工程 前言 LVGL 轻巧而多功能的图形库 是一个免费的开放源代码图形库 它提供创建具有易于使用的
  • LVGL8学习之Flex布局2

    这一篇来学习Flex布局的把项目按行包裹 且让他们周围的控件平均 Arrange items in rows with wrap and even spacing 还是通过codeblock来模拟代码的运行 代码如下 void lv fle
  • LVGL 源码分析大全

    LVGL 源码分析大全目录 1 概述 2 已完成源码分析文章列表 2 1 硬件抽像层 hal 2 2 核心框架 core misc 2 3 定制功能 2 4 内部接口 2 5 案例讲解 2 6 其它 3 样式 4 组件 5 主题 6 开发环
  • lvgl8.2 img 图片显示

    1 lvgl 图片显示源 为了提供良好的图片显示灵活性 所以显示图像的来源可以是以下三种 代码中的一个变量 一个带有像素颜色数据的 C 数组 存储在外部的文件 比如 SD 卡 带有符号的文本 2 内部图片 对于源码内部图片 将图片转换为图片
  • LVGL---文本框(lv_textarea)

    目录 lv textarea文档地址 lv textarea文档地址 lvgl中文版本 v8 2 对应网盘中文文档 LVGL官方英文原版 v8 2
  • LVGL V8学习之键盘按键样式重绘(二)

    这一篇继续研究一下基于btnmatrix的键盘按键重绘 是对上一篇LVGL V8学习之键盘按键样式重绘 一 的代码的优化 还是通过codeblock来模拟代码的运行 代码如下 按键矩阵的事件回调函数 static void btnmatri
  • LVGL学习(3):页面切换原理和页面管理实现

    在LVGL中 大多情况下是有多个页面的 一般来说页面的切换有两种情况 删除当前的页面 创建新页面加载 保留当前的页面 创建新页面加载 我们来分析一下这两种情况 比如页面1有一个列表框 有三个选项 每个选项对应进入一个页面 假设此时我们的焦点

随机推荐

  • 解决Xp提示未激活状态

    今天不知是什么原因电脑突然桌面背景变为黑色 xff0c 右下角提示 You may be a victim of software counterfeiting xff0c 如下图 所示 解决方法 xff1a xff08 亲测可以解决 xf
  • 微软软件运行库下载 (DirectX,.NET Framework,VC++库..)

    运行库是程序在运行时所需要的库文件 xff0c 运行库中一般包括编程时常用的函数 xff0c 如字符串操作 文件操作 界面等内容 不同的语言所支持的函数通常是不同的 xff0c 所以使用的库也是完全不同的 xff0c 这就是为什么有VB运行
  • 解决笔记本win7系统玩游戏不能全屏办法

    我们在使用笔记本win7系统玩游戏时 xff0c 经常会发现屏幕居中两边有黑条 而有一些台式机的宽屏显示器也经常出现下玩游戏不能全屏的问题 下面系统之家给大家介绍游戏不能全屏问题通用解决方法 1 修改注册表中的显示器的参数设置 Win键 4
  • MouseWithoutBorders无界鼠标安装配置教程

    第一步 xff1a 怎样修改系统计算机全名 xff08 链接教程 xff09 win7如何修改计算机的名字 百度经验 所有虚拟机必须改成不一样的名字 xff08 至关重要 xff09 第二步 xff1a 必须防火墙为开启的状态 xff08
  • 更换 PVE7 软件仓库源和 CT模板(LXC)源为国内源

    PVE7 安装后默认配置的 apt 软件源和 CT LXC 容器模板源均是官方默认的 xff0c 国内使用性能不佳 xff0c 建议替换为 清华 Tuna 提供的国内镜像源 xff0c 速度将有一个较大的提升 如果 pve 官网 iso 镜
  • Proxmox 7.3 换国内源安装

    Proxmox 7 2 默认来自官方的源 xff0c 国内慢的一逼高峰期只有个几KB的速度 xff0c 所以换源 Debian系统源 阿里云源 和中科大proxmox源 一 更换阿里云的源 vi etc apt sources list 替
  • 在x86平台制作龙芯版debian 10系统(mips64el)

    OS ubuntu 18 04 使用debootstrap制作根文件系统会分成两个阶段 第一阶段是 xff0c 使用debootstrap命令来下载软件包 第二阶段是安装软件包 安装debootstap 等相关工具 sudo apt ins
  • Mac安装homebrew报错curl: (7) Failed to connect to raw.githubusercontent.com port 443: Operation的解决办法

    在mac上安装homebrew的时候一般都是在终端输入以下的命令安装的 xff1a bin bash c 34 curl fsSL https raw githubusercontent com Homebrew install maste
  • 深度强化学习-DQN算法

    论文地址 xff1a https arxiv org abs 1312 5602 先讲下在线 xff0c 离线 xff0c 同策略和异策略 同策略 xff08 on policy xff09 和异策略 xff08 off policy xf
  • 再忙也要及时输出

    最近项目比较忙 xff0c 加班到很晚 xff0c 所以没有太多时间来更新博客 在做事情的过程中有过许多想法因为没有及时记录下来 xff0c 已经回想不起来了 xff0c 这是一种损失 不论再忙碌 xff0c 也要去反思和输出自己思考的东西
  • 通过Navicat 连接的数据库 查看数据库密码

    有时候数据库密码弄丢了 但是navicat能正常连接 想着到navicat连接处 复制一个 发现复制不了 可以用下面的方法查看 一 xff1a 导出连接 选择要导出数据库 勾选导出密码 导出的结果 里面打开就有加密后的密码 二 xff1a
  • 波长与频率的关系

    波长的定义 沿着波的传播方向 xff0c 在波的图形中相对平衡位置的位移时刻相同的两个质点之间的距离 横波与纵波的波长 在横波中波长通常是指相邻两个波峰或波谷之间的距离 在纵波中波长是指相邻两个密部或疏部之间的距离 波长在物理中表示为 xf
  • Python中的yield详细解释

    Python中的yield详细解释 yield是一个六级词汇 xff0c 常见意思有 产量 xff0c 屈服 动词 这里的yield大概率解释为一个僻义 缴出 咱们在什么情况下 xff0c 会用到yield呢 xff1f 答 xff1a 处
  • scrapy下载文件遇到的问题

    在写DEMO时遇到两个问题 1 FilesPipeline 不执行 原因 xff1a 从网上抄的脚本 xff0c FILES STORE 写成 FILE STORE了 xff0c 改成FILES STORE xff0c 可以触发FilesP
  • odoo 界面风格(theme)设置

    odoo 官方提供了不少收费或免费的界面风格 xff0c 可以自行选择安装 xff0c 下面介绍一下安装过程 xff11 下载安装包 安装包从官方下载 xff0c 地址 xff1a https apps odoo com apps them
  • windows环境 odoo16源码安装

    windows环境 odoo16源码安装 odoo16 源码安装 postgresql 安装 anaconda安装 odoo安装 odoo配置 odoo16 源码安装 安装环境为windows7 postgresql 13 odoo16的源
  • 1602B液晶使用范例

    2007 12 24 16 27 46 液晶显示模块具有体积小 功耗低 显示内容丰富等特点 xff0c 现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了 本实验以常见的1602B字符型LCD模块为例 xff0c 介绍该模块
  • 访问共享文件夹总是提示“指定的网络名不再可用”,重启就好了

    共享文件夹可以ping通 xff0c 但是访问的时候总是提示 指定的网络名不再可用 xff0c 重启电脑之后就好了 网上的解决方案基本上都是检查Computer Browser Server Workstation这几个服务有没有启动 这几
  • MySQL加密方式之更改(error 1251)

    caching sha2 password To mysql native password MySQL V8后 xff0c 采用更强的SHA加密方式 xff0c caching sha2 password 如果客户端 JDBC或者App通
  • LVGL 8.2 菜单

    定义及声明 span class token keyword enum span span class token punctuation span LV MENU ITEM BUILDER VARIANT 1 span class tok