GUI guider 常用函数解析

GUI Guider 是 NXP 提供的用于设计和生成 LittlevGL (LVGL) 用户界面的工具。它生成的代码包括初始化、事件处理和其他相关功能。以下是一些常用的 GUI Guider 函数及其介绍:

1. void setup_scr_<screen_name>(lv_ui *ui)

描述: 初始化并设置指定的屏幕。
参数:

  • lv_ui *ui: 指向包含所有 LVGL 对象的结构的指针。

示例:

void setup_scr_main_screen(lv_ui *ui) {// 初始化和设置主屏幕
}

2. void events_init(lv_ui *ui)

描述: 初始化屏幕上的所有事件处理程序。
参数:

  • lv_ui *ui: 指向包含所有 LVGL 对象的结构的指针。

示例:

void events_init(lv_ui *ui) {// 注册所有事件处理程序
}

3. void custom_init(lv_ui *ui)

描述: 用于用户自定义的初始化代码。
参数:

  • lv_ui *ui: 指向包含所有 LVGL 对象的结构的指针。

示例:

void custom_init(lv_ui *ui) {// 用户自定义初始化代码
}

4. lv_event_cb_t <object_name>_event_handler

描述: 特定对象的事件处理程序。
参数:

  • lv_event_t *e: LVGL 事件指针。

示例:

void btn1_event_handler(lv_event_t *e) {lv_event_code_t code = lv_event_get_code(e);lv_obj_t *btn = lv_event_get_target(e);if(code == LV_EVENT_CLICKED) {// 处理按钮点击事件}
}

5. void lv_ui_init(lv_ui *ui)

描述: 初始化所有 UI 组件。
参数:

  • lv_ui *ui: 指向包含所有 LVGL 对象的结构的指针。

示例:

void lv_ui_init(lv_ui *ui) {setup_scr_main_screen(ui);events_init(ui);
}

6. void lv_task_handler(void)

描述: LVGL 的任务处理函数,通常在主循环中调用以处理 LVGL 的任务。
参数: 无。

示例:

void app_main(void) {lv_init();lv_ui ui;lv_ui_init(&ui);while(1) {lv_task_handler();vTaskDelay(1); // FreeRTOS 中的延迟函数}
}

7. void lv_timer_handler(void)

描述: 定时处理 LVGL 任务,通常在硬件定时器中调用。
参数: 无。

示例:

esp_timer_handle_t lvgl_timer;
const esp_timer_create_args_t lvgl_timer_args = {.callback = &lv_timer_handler,.name = "lvgl_timer"
};
ESP_ERROR_CHECK(esp_timer_create(&lvgl_timer_args, &lvgl_timer));
ESP_ERROR_CHECK(esp_timer_start_periodic(lvgl_timer, 5 * 1000)); // 每5ms调用一次

8. void lv_scr_load(lv_obj_t *scr)

描述: 加载并显示指定的屏幕。
参数:

  • lv_obj_t *scr: 指向要加载的屏幕对象的指针。

示例:

lv_obj_t *main_screen = lv_obj_create(NULL);
lv_scr_load(main_screen);

9. void lv_obj_clean(lv_obj_t *obj)

描述: 清除对象的所有子对象。
参数:

  • lv_obj_t *obj: 指向要清除的对象的指针。

示例:

lv_obj_clean(lv_scr_act()); // 清空当前屏幕

10. void lv_obj_del(lv_obj_t *obj)

描述: 删除指定的对象。
参数:

  • lv_obj_t *obj: 指向要删除的对象的指针。

示例:

lv_obj_del(button1); // 删除 button1 对象

整体示例

下面是一个完整的示例,展示了如何使用 GUI Guider 生成的函数来初始化和管理屏幕:

#include "lvgl.h"
#include "gui_guider.h"
#include "events_init.h"
#include "custom.h"lv_ui guider_ui;void app_main(void) {lv_init();// 初始化显示和输入设备lv_disp_drv_t disp_drv;lv_indev_drv_t indev_drv;lv_disp_drv_init(&disp_drv);lv_indev_drv_init(&indev_drv);lv_disp_drv_register(&disp_drv);lv_indev_drv_register(&indev_drv);// 初始化 GUI Guiderlv_ui_init(&guider_ui);// 加载主屏幕setup_scr_main_screen(&guider_ui);lv_scr_load(guider_ui.main_screen);// 主循环while (1) {lv_task_handler();vTaskDelay(1); // FreeRTOS 延迟}
}

总结

以上介绍了 GUI Guider 生成的常用函数及其功能。通过这些函数,你可以初始化和管理 LVGL 用户界面,处理用户事件,并实现自定义的界面逻辑。如果有更多问题或需要进一步的帮助,请告诉我。

除了前面介绍的函数外,在使用 GUI Guider 生成的代码和 LVGL 驱动 TFT 屏幕时,还有一些其他常用的函数。这些函数在初始化、事件处理和屏幕管理中非常有用。以下是一些其他常用的函数及其简要说明:

11. lv_obj_t *lv_label_create(lv_obj_t *parent)

描述: 创建一个新的标签对象。
参数:

  • lv_obj_t *parent: 指向父对象的指针。
    返回值: 新创建的标签对象。

示例:

lv_obj_t *label = lv_label_create(lv_scr_act());
lv_label_set_text(label, "Hello, LVGL!");

12. lv_obj_t *lv_btn_create(lv_obj_t *parent)

描述: 创建一个新的按钮对象。
参数:

  • lv_obj_t *parent: 指向父对象的指针。
    返回值: 新创建的按钮对象。

示例:

lv_obj_t *btn = lv_btn_create(lv_scr_act());
lv_obj_set_size(btn, 100, 50);

13. void lv_label_set_text(lv_obj_t *label, const char *text)

描述: 设置标签的文本。
参数:

  • lv_obj_t *label: 指向标签对象的指针。
  • const char *text: 要设置的文本。

示例:

lv_label_set_text(label, "New Text");

14. void lv_btn_set_action(lv_obj_t *btn, lv_btn_action_t type, lv_action_t action)

描述: 设置按钮的动作回调函数(适用于旧版本的 LVGL,LVGL 7.0 之前)。
参数:

  • lv_obj_t *btn: 指向按钮对象的指针。
  • lv_btn_action_t type: 按钮动作类型(如 LV_BTN_ACTION_CLICK)。
  • lv_action_t action: 回调函数。

示例:

static lv_res_t btn_click_action(lv_obj_t *btn) {printf("Button clicked\n");return LV_RES_OK;
}lv_btn_set_action(btn, LV_BTN_ACTION_CLICK, btn_click_action);

15. void lv_obj_set_pos(lv_obj_t *obj, lv_coord_t x, lv_coord_t y)

描述: 设置对象的位置。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_coord_t x: X 坐标。
  • lv_coord_t y: Y 坐标。

示例:

lv_obj_set_pos(label, 10, 10);

16. void lv_obj_set_size(lv_obj_t *obj, lv_coord_t w, lv_coord_t h)

描述: 设置对象的大小。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_coord_t w: 宽度。
  • lv_coord_t h: 高度。

示例:

lv_obj_set_size(btn, 100, 50);

17. void lv_obj_set_hidden(lv_obj_t *obj, bool hide)

描述: 显示或隐藏对象。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • bool hide: 如果为 true,隐藏对象;否则显示对象。

示例:

lv_obj_set_hidden(label, true);

18. void lv_obj_align(lv_obj_t *obj, const lv_obj_t *base, lv_align_t align, lv_coord_t x_ofs, lv_coord_t y_ofs)

描述: 对齐对象到基对象。
参数:

  • lv_obj_t *obj: 指向要对齐的对象的指针。
  • const lv_obj_t *base: 指向基对象的指针。
  • lv_align_t align: 对齐方式。
  • lv_coord_t x_ofs: X 轴偏移量。
  • lv_coord_t y_ofs: Y 轴偏移量。

示例:

lv_obj_align(btn, NULL, LV_ALIGN_CENTER, 0, 0);

19. void lv_task_create(lv_task_cb_t task_cb, uint32_t period, lv_task_prio_t prio, void *user_data)

描述: 创建一个新的任务。
参数:

  • lv_task_cb_t task_cb: 任务回调函数。
  • uint32_t period: 任务执行的周期(以毫秒为单位)。
  • lv_task_prio_t prio: 任务优先级。
  • void *user_data: 用户数据。

示例:

static void my_task(lv_task_t *task) {// Task code
}lv_task_create(my_task, 1000, LV_TASK_PRIO_MID, NULL); // 每秒执行一次任务

20. void lv_anim_set_time(lv_anim_t *anim, uint32_t duration)

描述: 设置动画的持续时间。
参数:

  • lv_anim_t *anim: 指向动画对象的指针。
  • uint32_t duration: 持续时间(以毫秒为单位)。

示例:

lv_anim_t a;
lv_anim_init(&a);
lv_anim_set_time(&a, 500); // 动画持续 500 毫秒

21. void lv_obj_set_style_local_value_str(lv_obj_t *obj, lv_style_value_t value, lv_state_t state)

描述: 设置对象的本地样式值字符串。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_style_value_t value: 样式值。
  • lv_state_t state: 状态。

示例:

lv_obj_set_style_local_value_str(label, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, "New Value");

综合示例

以下是一个综合示例,展示了如何使用上述函数创建和管理一个带有标签和按钮的简单界面:

#include "lvgl.h"
#include "gui_guider.h"
#include "events_init.h"
#include "custom.h"lv_ui guider_ui;static void btn_event_handler(lv_event_t *e) {lv_event_code_t code = lv_event_get_code(e);lv_obj_t *btn = lv_event_get_target(e);if (code == LV_EVENT_CLICKED) {lv_label_set_text(guider_ui.label1, "Button clicked!");}
}void app_main(void) {lv_init();// 初始化显示和输入设备lv_disp_drv_t disp_drv;lv_indev_drv_t indev_drv;lv_disp_drv_init(&disp_drv);lv_indev_drv_init(&indev_drv);lv_disp_drv_register(&disp_drv);lv_indev_drv_register(&indev_drv);// 初始化 GUI Guiderlv_ui_init(&guider_ui);// 创建标签guider_ui.label1 = lv_label_create(lv_scr_act());lv_label_set_text(guider_ui.label1, "Hello, LVGL!");lv_obj_align(guider_ui.label1, LV_ALIGN_CENTER, 0, -40);// 创建按钮lv_obj_t *btn = lv_btn_create(lv_scr_act());lv_obj_set_size(btn, 100, 50);lv_obj_align(btn, LV_ALIGN_CENTER, 0, 40);lv_obj_add_event_cb(btn, btn_event_handler, LV_EVENT_CLICKED, NULL);// 加载主屏幕setup_scr_main_screen(&guider_ui);lv_scr_load(guider_ui.main_screen);// 主循环while (1) {lv_task_handler();vTaskDelay(1); // FreeRTOS 延迟}
}

通过这些函数和示例代码,你可以更好地理解和使用 GUI Guider 和 LVGL 来创建和管理用户界面。如果有更多问题或需要进一步的帮助,请告诉我。

当然,还有许多其他常用的 LVGL 函数可以用来创建和管理图形界面组件。下面是更多的常用函数及其介绍:

22. void lv_obj_add_flag(lv_obj_t *obj, lv_obj_flag_t flag)

描述: 为对象添加标志(例如使对象可点击、隐藏等)。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_obj_flag_t flag: 要添加的标志。

示例:

lv_obj_add_flag(btn, LV_OBJ_FLAG_CLICKABLE); // 使按钮对象可点击

23. void lv_obj_clear_flag(lv_obj_t *obj, lv_obj_flag_t flag)

描述: 清除对象的标志。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_obj_flag_t flag: 要清除的标志。

示例:

lv_obj_clear_flag(btn, LV_OBJ_FLAG_CLICKABLE); // 使按钮对象不可点击

24. void lv_obj_set_style_bg_color(lv_obj_t *obj, lv_color_t color, lv_state_t state)

描述: 设置对象的背景颜色。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_color_t color: 要设置的颜色。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_bg_color(btn, lv_color_hex(0xFF0000), LV_STATE_DEFAULT); // 设置按钮的背景颜色为红色

25. void lv_obj_set_style_radius(lv_obj_t *obj, lv_coord_t radius, lv_state_t state)

描述: 设置对象的圆角半径。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_coord_t radius: 圆角半径。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_radius(btn, 10, LV_STATE_DEFAULT); // 设置按钮的圆角半径为10

26. void lv_obj_set_style_border_width(lv_obj_t *obj, lv_coord_t width, lv_state_t state)

描述: 设置对象的边框宽度。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_coord_t width: 边框宽度。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_border_width(btn, 2, LV_STATE_DEFAULT); // 设置按钮的边框宽度为2

27. void lv_obj_set_style_border_color(lv_obj_t *obj, lv_color_t color, lv_state_t state)

描述: 设置对象的边框颜色。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_color_t color: 边框颜色。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_border_color(btn, lv_color_hex(0x00FF00), LV_STATE_DEFAULT); // 设置按钮的边框颜色为绿色

28. void lv_obj_set_style_text_font(lv_obj_t *obj, const lv_font_t *font, lv_state_t state)

描述: 设置对象的文本字体。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • const lv_font_t *font: 字体指针。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_text_font(label, &lv_font_montserrat_28, LV_STATE_DEFAULT); // 设置标签的字体为 Montserrat 28

29. void lv_obj_set_style_text_color(lv_obj_t *obj, lv_color_t color, lv_state_t state)

描述: 设置对象的文本颜色。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_color_t color: 文本颜色。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_text_color(label, lv_color_hex(0x0000FF), LV_STATE_DEFAULT); // 设置标签的文本颜色为蓝色

30. void lv_obj_add_event_cb(lv_obj_t *obj, lv_event_cb_t event_cb, lv_event_code_t filter, void *user_data)

描述: 为对象添加事件回调函数。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_event_cb_t event_cb: 事件回调函数。
  • lv_event_code_t filter: 过滤的事件代码。
  • void *user_data: 用户数据指针。

示例:

static void btn_event_handler(lv_event_t *e) {lv_event_code_t code = lv_event_get_code(e);lv_obj_t *btn = lv_event_get_target(e);if (code == LV_EVENT_CLICKED) {printf("Button clicked\n");}
}lv_obj_add_event_cb(btn, btn_event_handler, LV_EVENT_CLICKED, NULL); // 为按钮添加点击事件回调

31. void lv_obj_set_style_value_str(lv_obj_t *obj, const char *str, lv_state_t state)

描述: 设置对象的值字符串。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • const char *str: 值字符串。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_value_str(label, "Hello, LVGL!", LV_STATE_DEFAULT); // 设置标签的值字符串

32. void lv_obj_set_style_shadow_width(lv_obj_t *obj, lv_coord_t width, lv_state_t state)

描述: 设置对象的阴影宽度。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_coord_t width: 阴影宽度。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_shadow_width(btn, 10, LV_STATE_DEFAULT); // 设置按钮的阴影宽度为10

33. void lv_obj_set_style_shadow_color(lv_obj_t *obj, lv_color_t color, lv_state_t state)

描述: 设置对象的阴影颜色。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_color_t color: 阴影颜色。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_shadow_color(btn, lv_color_hex(0x888888), LV_STATE_DEFAULT); // 设置按钮的阴影颜色为灰色

34. void lv_obj_set_style_pad_all(lv_obj_t *obj, lv_coord_t pad, lv_state_t state)

描述: 设置对象的内边距。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_coord_t pad: 内边距大小。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_pad_all(btn, 5, LV_STATE_DEFAULT); // 设置按钮的内边距为5

35. void lv_obj_set_style_pad_top(lv_obj_t *obj, lv_coord_t pad, lv_state_t state)

描述: 设置对象的顶部内边距。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_coord_t pad: 顶部内边距大小。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_pad_top(btn, 10, LV_STATE_DEFAULT); // 设置按钮的顶部内边距为10

36. void lv_obj_set_style_pad_bottom(lv_obj_t *obj, lv_coord_t pad, lv_state_t state)

描述: 设置对象的底部内边距。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_coord_t pad: 底部内边距大小。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_pad_bottom(btn, 10, LV_STATE_DEFAULT); // 设置按钮的底部内边距为10

37. void lv_obj_set_style_pad_left(lv_obj_t *obj, lv_coord_t pad, lv_state_t state)

描述: 设置对象的左边内边距。
参数:

  • lv_obj_t *obj: 指向对象的指针。
  • lv_coord_t pad: 左边内边距大小。
  • lv_state_t state: 对象的状态。

示例:

lv_obj_set_style_pad_left(btn, 10, LV_STATE_DEFAULT); // 设置按钮的左边内边

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/23220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扩展 Kafka 集群从三台节点到四台节点的过程

扩展 Kafka 集群从三台节点到四台节点的过程可以分为以下几个步骤。这个过程需要同时配置 Kafka 和 ZooKeeper&#xff0c;确保新的节点能够无缝地加入集群。 目录 步骤 1: 安装并配置 Kafka 和 ZooKeeper步骤 2: 配置并启动新的 Kafka 节点步骤 3: 更新集群元数据步骤 4: 更新…

Linux前端与Windows前端区别:深入剖析两大系统的前端差异

Linux前端与Windows前端区别&#xff1a;深入剖析两大系统的前端差异 在前端开发的领域中&#xff0c;Linux和Windows两大操作系统各自拥有着独特的优势和特点。对于开发者而言&#xff0c;理解并把握这些差异&#xff0c;将有助于更高效地选择适合自己的开发环境&#xff0c;…

element ui 实现 分步表单

方法一&#xff1a; <template><div class"main-container"><el-card :body-style"{ padding: 20px }" shadow"hover"><el-steps:active"activeStep"align-centerfinish-status"success"class"s…

大型语言模型智能体(LLM Agent)在实际使用的五大问题

在这篇文章中&#xff0c;我将讨论人们在将代理系统投入生产过程中经常遇到的五个主要问题。我将尽量保持框架中立&#xff0c;尽管某些问题在特定框架中更加常见。 1. 可靠性问题 可靠性是所有代理系统面临的最大问题。很多公司对代理系统的复杂任务持谨慎态度&#xff0c;因…

filter实现模糊查询通用案例

文章目录 一、使用步骤1. 创建模糊过滤函数2. 使用场景3. 模糊搜索算法 一、使用步骤 1. 创建模糊过滤函数 filterFuzzy(input, arr) {// 创建模糊搜索正则表达式const pattern new RegExp(input.toLowerCase().replace(/ /g, |).replace(/\\*/g, .{3,}), i);// 过滤数组返回…

SpringBoot定时任务+Quartz 动态调度

1、分部解释 2、完整代码 3、SpringBoot定时任务Quartz 1、动态定时任务&#xff1a; 动态定时任务&#xff0c;即定时任务的动态调度&#xff0c;可根据需求自由的进行任务的生成、暂停、恢复、删除和更新操作。Quartz本身没有提供动态调度的功能,需要自己根据相关的API开发。…

wireshark源码分析 是怎么完成协议识别的

代码流程 通过process_packet_single_pass处理单个数据包&#xff0c;每层数据包都会使用decode_udp(tcp)_ports识别协议&#xff0c;这里面提供端口和特征识别&#xff1b; 端口识别&#xff1a;dissector_try_uint_new 在接口内通过find_uint_dtbl_entry 如果是一个HTTP数…

数据可视化之常用图表热力图

1.什么是热力图&#xff1f; 热力图&#xff0c;是一种通过对色块着色来显示数据的统计图表。 绘图时&#xff0c;需指定颜色映射的规则。 例如&#xff0c;较大的值由较深的颜色表示&#xff0c;较小的值由较浅的颜色表示&#xff1b;较大的值由偏暖的颜色表示&#xff0c;…

【解释说明下java反射机制?】

文章目录 概要核心概念反射的主要用途反射的基本操作注意事项示例总结 概要 Java反射&#xff08;Reflection&#xff09;是Java语言提供的一种强大的工具&#xff0c;它允许程序在运行时进行自我检查&#xff0c;并能对类的内部信息&#xff08;如成员变量、构造方法、成员方…

【摄影测量02】什么是内外方位参数?坐标系旋转变换?

【摄影测量02】什么是内外方位参数&#xff1f;坐标系旋转变换&#xff1f; 文章目录 【摄影测量02】什么是内外方位参数&#xff1f;坐标系旋转变换&#xff1f;引言1 内方位元素与外方位元素1.1 内方位元素1.2 外方位元素 2 旋转矩阵的概念与应用2.1 旋转矩阵的定义2.2 坐标变…

chatglm3-6b小试

原本想在VMware中装个unbutu&#xff0c;再搞chatglm&#xff0c;但经过调研发现业内都是采用双系统来搞chat的开发。于是只好用rufus制作了一个ubuntu22.04的系统盘&#xff0c;你需要准备8G&#xff0c;因为制作好镜像后是7个多G。安装这里就不说了。 1 ubuntu环境 安装好ubu…

升级HarmonyOS 4.2,开启健康生活篇章

夏日来临&#xff0c;华为智能手表携 HarmonyOS 4.2 版本邀您体验&#xff0c;它不仅可以作为时尚单品搭配夏日绚丽服饰&#xff0c;还能充当你的健康管家&#xff0c;从而更了解自己的身体&#xff0c;开启智能健康生活篇章。 高血糖风险评估优化&#xff0c;健康监测更精准 …

在SpringBoot项目中应用RedisCache功能

1.application.yaml中添加cache配置 spring:cache:type: redisredis:time-to-live: 72000000key-prefix: redis:cache:use-key-prefix: truecache-null-values: true 2.封装RedisCache配置类 EnableConfigurationProperties(CacheProperties.class) Configuration EnableCac…

Spring注解驱动开发与第三方整合实战指南

注解开发定义Bean对象 Spring框架提供了丰富的注解来简化XML配置&#xff0c;其中Component是最基础的注解&#xff0c;它标志着一个Java类作为Spring中的Bean。针对不同的层&#xff0c;Spring还提供了特定的衍生注解&#xff0c;如Controller用于Web层&#xff0c;Service用于…

海南聚广众达电子商务咨询有限公司靠谱吗?

在数字经济的浪潮中&#xff0c;抖音电商作为新兴业态&#xff0c;正以其独特的魅力和强大的势能&#xff0c;改变着传统商业模式&#xff0c;引领着新一轮的消费潮流。海南聚广众达电子商务咨询有限公司&#xff0c;作为抖音电商服务领域的佼佼者&#xff0c;凭借其专业的团队…

Scalable Membership Inference Attacks via Quantile Regression

我们使用以下六个分类标准: 动机: 隐私问题:许多研究背后的主要动机是对机器学习模型相关的隐私风险日益增长的担忧。例如,Shokri等人(2017)和Carlini等人(2022)专注于开发和改进成员推理攻击,以评估模型对隐私泄露的脆弱性。模型理解:一些研究深入了解机器学习模型的固有…

重学java 65.IO流 缓冲流

I am not afraid tomorrow for I have seen yesterday and love today —— 24.6.5 一、字节缓冲流 1.字节缓冲流的意义 之前所写的FileOutputstream、FileInputstream、FileReader、Filewriter这都叫做基本流,其中FileInputstream和FieOutputstream的读写方法都是本地方法(方…

局域网怎么设置路由器?

在搭建局域网的过程中&#xff0c;设置路由器是非常重要的一步。正确地设置路由器可以确保局域网的正常运行&#xff0c;并且可以更好地保护网络安全。以下是一些关于如何设置路由器的指南。 第一步&#xff1a;获取路由器 您需要获得一台适合您需求的路由器设备。选择一款性能…

idea如何根据路径快速在项目中快速打卡该页面

在idea项目中使用快捷键shift根据路径快速找到该文件并打卡 双击shift(连续按两下shift) -粘贴文件路径-鼠标左键点击选中跳转的路径 自动进入该路径页面 例如&#xff1a;我的实例路径为src/views/user/govType.vue 输入src/views/user/govType或加vue后缀src/views/user/go…

回炉重造java----JUC(第二天)

Monitor---监视器/管程 对象头&#xff1a; 操作系统提供的Monitor对象 Synchronized底层实现原理&#xff1a; ①锁对象在加了synchronized之后&#xff0c;对象头中的Mark Word中就存了一个Monitor的地址指针。 ②当一个线程获取到锁之后&#xff0c;Monitor中的Owner属性指…