【易上手快捷开发新框架技术】nicegui组件button用法庖丁解牛深度解读源代码IDE运行和调试通过截图为证

传奇开心果微博文系列

    • 前言
    • 一、button 组件基本用法
      • 1. 最基本用法示例
      • 2. 创建带图标按钮
    • 二、button按钮组件样式定制
      • 1. 按钮的尺寸调整
      • 2. 改变颜色示例
      • 3. 按钮的自定义字体大小
      • 4. 圆角形状示例
      • 5. 自定义边框
      • 6. 添加阴影
      • 7. 复合按钮
      • 8. 浮动按钮
      • 9. 可扩展浮动操作按钮QFAB
      • 10. 按钮的CSS自定义样式
      • 11. 使用css自定义鼠标悬停、离开和单击颜色变化实现按钮交互
      • 12. 按钮组
    • 三、按钮事件示例
      • 1. 禁用状态示例
      • 2. 动态切换禁用状态
      • 3. 带有上下文管理器的 Disable 按钮
      • 4. 加载状态示例
      • 5. 工具提示 (Tooltip)
      • 6. 用户界面通知
      • 7. 按钮的动画效果
      • 8.自定义鼠标悬停按钮和离开按钮触发不同事件,鼠标指针也发生变化
      • 9. 提交表单按钮
      • 10. 导航按钮导航到其他页面
      • 11. 执行命令
      • 12. 按钮之间交互
      • 13. 切换按钮ToggleButton
      • 14. 异步操作
      • 15. 等待按钮await
  • 四、归纳知识点
      • (一)button组件样式设定知识点归纳:
      • (二)button组件事件知识点归纳:

前言

NiceGUI 的 button 组件主要用于创建用户界面中的按钮元素。按钮是用户界面设计中最常见的交互元素之一,它允许用户通过点击来执行某些动作或触发特定的功能。
在 NiceGUI 中,button 组件具有以下作用:

用户交互:用户可以通过点击按钮来与应用程序进行交互。例如,在表单中提交数据、导航到其他页面、执行命令等。

事件触发:按钮可以绑定到事件处理器(回调函数),当用户点击按钮时,这些函数将会被执行。这使得开发者能够编写逻辑来响应用户的操作。

界面控制:按钮可以用来控制其他 UI 元素的状态或显示内容的变化。例如,显示或隐藏其他组件,切换不同的视图等。

样式定制:可以根据需要自定义按钮的外观,包括文本、图标、颜色、大小等属性,以适应不同的设计需求。

状态反馈:按钮可以根据其当前状态显示不同的视觉效果,如禁用状态、激活状态等,为用户提供明确的操作反馈。

使用 NiceGUI 的 button 组件时,可以通过 Python 代码轻松地创建按钮,并将其集成到更复杂的用户界面布局中。此外,还可以利用 NiceGUI 提供的各种功能来增强按钮的功能性和可用性。

一、button 组件基本用法

1. 最基本用法示例

from nicegui import ui

def on_click():
    print('Button clicked!')

ui.button('Click me', on_click=on_click)

ui.run()

创建一个简单的 GUI 界面,其中包含一个按钮。当用户点击这个按钮时,控制台将输出 “Button clicked!”。
在这里插入图片描述

2. 创建带图标按钮

from nicegui import ui

def on_click():
    print('Button clicked!')

# 使用 Material Icons
button1 = ui.button('Click me', on_click=on_click)
button1.props('icon=home')

# 使用自定义图标
with ui.button('Click me', on_click=on_click):
    ui.icon('home')

ui.run()

在这个示例中,我们创建了两个按钮,一个使用 props 方法设置 Material Icons 图标,另一个使用 ui.icon 组件设置自定义图标。运行这段代码后,你会看到两个带有图标的按钮,并且点击按钮时会在控制台输出 “Button clicked!”。
在这里插入图片描述

二、button按钮组件样式定制

1. 按钮的尺寸调整

from nicegui import ui

def on_click():
    print('Button clicked!')

# 不同尺寸的按钮
button1 = ui.button('Large Button', on_click=on_click)
button1.props('size=lg')

button2 = ui.button('Small Button', on_click=on_click)
button2.props('size=sm')

ui.run()

可以设置按钮的不同尺寸。
在这里插入图片描述

2. 改变颜色示例

from nicegui import ui

def on_click():
    print('Button clicked!')

# 自定义样式
button1 = ui.button('Custom Button', on_click=on_click)
button1.props('color=yellow size=lg')

ui.run()

可以通过 props 方法来定制按钮的样式,例如改变颜色、大小等。
在这里插入图片描述

3. 按钮的自定义字体大小

from nicegui import ui

def on_click():
    print('Button clicked!')

# 自定义字体大小
button = ui.button('Custom Button', on_click=on_click)
button.style('font-size: 18px')

ui.run()

可以设置按钮的字体大小。
在这里插入图片描述

4. 圆角形状示例

from nicegui import ui

def on_click():
    print('Button clicked!')

# 圆形按钮
button = ui.button('C', on_click=on_click)
button.props('round')

# 圆角按钮
button = ui.button('Click me', on_click=on_click)
button.props('rounded')

ui.run()

可以设置按钮为圆形或圆角形状。
在这里插入图片描述

5. 自定义边框

from nicegui import ui

def on_click():
    print('Button clicked!')

# 自定义边框
button = ui.button('Custom Button', on_click=on_click)
button.style('border: 2px solid red')

ui.run()

关键点解释:

button.style('border: 2px solid red')

这行代码设置了按钮的样式,具体来说是设置了按钮的边框样式。
border: 设置边框样式。
2px: 边框宽度为 2 像素。
solid: 边框类型为实线。
red: 边框颜色为红色。
在这里插入图片描述

6. 添加阴影

from nicegui import ui

def on_click():
    print('Button clicked!')

# 自定义边框和阴影
button = ui.button('Custom Button', on_click=on_click)
button.style('border: 2px solid red; border-radius: 5px; padding: 10px; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.5);')

ui.run()

关键点解释:

运行这段代码后,你会看到一个带有红色边框、圆角、内边距和更深阴影效果的按钮。具体效果如下:

按钮的边框宽度为 2px,边框类型为实线,边框颜色为红色。
按钮的圆角半径为 5px。
按钮的内边距为 10px。
按钮的阴影效果为水平偏移量 0px,垂直偏移量 8px,模糊半径 16px,阴影颜色为黑色,透明度为 0.5。
在这里插入图片描述

7. 复合按钮

from nicegui import ui

def on_click():
    print('Button clicked!')

# 复合按钮
with ui.button('Composite Button', on_click=on_click):
    ui.icon('home')
    ui.label('Label')

ui.run()

可以将多个元素组合在一起,形成复合按钮。
在这里插入图片描述

8. 浮动按钮

from nicegui import ui

def on_click():
    print('Button clicked!')

# 浮动按钮
button = ui.button('', on_click=on_click)
button.props('fab icon=add')

ui.run()

可以创建浮动按钮,常用于移动应用界面中。
在这里插入图片描述

9. 可扩展浮动操作按钮QFAB

from nicegui import ui

# 使用紫色图标和按钮
with ui.element('q-fab').props('icon=menu color=purple'):
    ui.element('q-fab-action').props('icon=subway color=purple') \
        .on('click', lambda: ui.notify('subway'))
    ui.element('q-fab-action').props('icon=rowing color=purple') \
        .on('click', lambda: ui.notify('rowing'))
    ui.element('q-fab-action').props('icon=satellite color=purple') \
        .on('click', lambda: ui.notify('satellite'))

ui.run()

是一个按钮,单击时会显示多个操作
在这里插入图片描述

10. 按钮的CSS自定义样式

from nicegui import ui

ui.add_css('''
.custom-button {
    background-color:Purple ; /* 紫色背景 */
    color: white;          /* 白色文字 */
    border: none;              /* 无边框 */
    padding: 10px 20px;       /* 内边距 */
    text-align: center;        /* 文本居中 */
    text-decoration: none;     /* 无下划线 */
    display: inline-block;     /* 行内块元素 */
    font-size: 16px;          /* 字体大小 */
    margin: 4px 2px;          /* 外边距 */
    cursor: pointer;           /* 鼠标指针 */
    border-radius: 5px;       /* 圆角 */
}
''')

# 使用 HTML 添加按钮
ui.html('<button class="custom-button">自定义按钮</button>')

ui.run()

使用 ui.html() 方法来创建一个更灵活的按钮样式,用 CSS 来自定义按钮的样式。
在这里插入图片描述

11. 使用css自定义鼠标悬停、离开和单击颜色变化实现按钮交互

from nicegui import ui

ui.add_css('''
.custom-button {
    background-color: Purple; /* 默认紫色背景 */
    color: white;             /* 白色文字 */
    border: none;             /* 无边框 */
    padding: 10px 20px;      /* 内边距 */
    text-align: center;       /* 文本居中 */
    text-decoration: none;    /* 无下划线 */
    display: inline-block;    /* 行内块元素 */
    font-size: 16px;         /* 字体大小 */
    margin: 4px 2px;         /* 外边距 */
    cursor: pointer;          /* 鼠标指针 */
    border-radius: 5px;      /* 圆角 */
    transition: background-color 0.3s; /* 平滑过渡效果:背景颜色变化时持续 0.3 秒  */
}

.custom-button:hover {
    background-color: DarkOrchid; /* 鼠标悬停时背景颜色变为深紫色 */
}

.custom-button:active {
    background-color: BlueViolet; /* 鼠标点击时背景颜色变为蓝紫色 */
}
''')

# 使用 HTML 添加按钮
ui.html('<button class="custom-button">自定义按钮</button>')

ui.run()

12. 按钮组

from nicegui import ui

def on_click1():
    print('Button 1 clicked!')

def on_click2():
    print('Button 2 clicked!')

# 按钮组
with ui.row():
    ui.button('Button 1', on_click=on_click1)
    ui.button('Button 2', on_click=on_click2)

ui.run()

可以创建一组按钮,每个按钮都有不同的功能。
在这里插入图片描述

三、按钮事件示例

1. 禁用状态示例

from nicegui import ui

def on_click():
    print('Button clicked!')

# 禁用按钮
button2 = ui.button('Disabled Button', on_click=on_click)
button2.props('disabled')

ui.run()

可以设置按钮为禁用状态,使其不可点击。
在这里插入图片描述

2. 动态切换禁用状态

from nicegui import ui

def toggle_button():
    if button.disabled:
        button.props(remove='disabled')
    else:
        button.props('disabled')

def on_click():
    print('Button clicked!')

# 动态切换禁用状态
button = ui.button('Toggle', on_click=toggle_button)
button.props('disabled')

ui.run()

可以动态切换按钮的禁用状态。
在这里插入图片描述

3. 带有上下文管理器的 Disable 按钮

import httpx
from contextlib import contextmanager
from nicegui import ui

@contextmanager
def disable(button: ui.button):
    button.disable()
    try:
        yield
    finally:
        button.enable()

async def get_slow_response(button: ui.button) -> None:
    with disable(button):
        async with httpx.AsyncClient() as client:
            response = await client.get('https://httpbin.org/delay/1', timeout=5)
            ui.notify(f'Response code: {response.status_code}')

ui.button('响应缓慢', on_click=lambda e: get_slow_response(e.sender))

ui.run()

一个上下文管理器,可用于在异步进程期间禁用按钮。

4. 加载状态示例

from nicegui import ui

def on_click():
    print('Button clicked!')

# 加载状态
button3 = ui.button('Loading Button', on_click=on_click)
button3.props('loading')

ui.run()

可以在按钮上显示加载状态,通常用于长时间操作。
在这里插入图片描述

5. 工具提示 (Tooltip)

from nicegui import ui

def on_click():
    print('Button clicked!')

# 添加工具提示
button = ui.button('Click me', on_click=on_click)
button.tooltip('Click to perform an action')

ui.run()

可以为按钮添加工具提示,当鼠标悬停在按钮上时显示提示信息。
在这里插入图片描述

6. 用户界面通知

from nicegui import ui

# 创建一个按钮,并设置文本为 'Press me!'
button = ui.button('Press me!', on_click=lambda: 
                   ui.notify('Button was pressed!')
                   )

# 启动 NiceGUI 应用
ui.run()

单击按钮在用户界面中显示通知或提示。

在这里插入图片描述

7. 按钮的动画效果

from nicegui import ui

def on_click():
    print('Button clicked!')

# 动画效果
button = ui.button('Click me', on_click=on_click)
button.props('transition=fade-transition')

ui.run()

可以为按钮添加动画效果,比如,按钮单击有光晕扩散效果。
在这里插入图片描述

8.自定义鼠标悬停按钮和离开按钮触发不同事件,鼠标指针也发生变化

from nicegui import ui

def on_click():
    print('Button clicked!')

def on_mouseover():
    print('Mouse over button')

def on_mouseout():
    print('Mouse out button')

# 自定义事件
button = ui.button('Custom Button', on_click=on_click)
button.on('mouseover', on_mouseover)
button.on('mouseout', on_mouseout)

ui.run()

在这里插入图片描述

9. 提交表单按钮

from nicegui import ui
def submit_form():
    print(f"Form submitted with data: {name.value}")
    status.text = 'Form submitted successfully!'

# 创建表单
with ui.card():
    name = ui.input(label='Name')
    submit_button = ui.button('Submit', on_click=submit_form)
    status = ui.label()
    
ui.run()

提交表单数据
在这里插入图片描述

10. 导航按钮导航到其他页面

from nicegui import ui

# 创建按钮导航界面
with ui.row():
    ui.button('返回', on_click=ui.navigate.back)  # 返回上一页
    ui.button('前进', on_click=ui.navigate.forward)  # 前往下一页
    ui.button(icon='savings',
              on_click=lambda: ui.navigate.to('https://blog.csdn.net/jackchuanqi?spm=1003.2105.3001.5343'))  # 前往 GitHub Sponsors 页面

# 启动应用
ui.run()

导航到其他页面
在这里插入图片描述
在这里插入图片描述

11. 执行命令

from nicegui import ui

def execute_command():
    print('Command executed!')

# 创建执行命令的按钮
command_button = ui.button('Execute Command', on_click=execute_command)

ui.run()

按钮可以执行命令
在这里插入图片描述

12. 按钮之间交互

from nicegui import ui

# 初始化按钮状态
button_a = None
button_b = None

def show_button_b():
    global button_a, button_b
    if button_b is not None:
        button_b.visible = True
        button_a.disable()

def show_button_a():
    global button_a, button_b
    if button_a is not None:
        button_b.visible = False
        button_a.enable()

# 创建按钮 A
button_a = ui.button('Button A', on_click=show_button_b)
button_a.style('border: 2px solid red; border-radius: 5px; padding: 10px; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.5);')

# 创建按钮 B,并初始隐藏
button_b = ui.button('Button B', on_click=show_button_a)
button_b.visible = False
button_b.style('border: 2px solid blue; border-radius: 5px; padding: 10px; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.5);')

ui.run()

关键点解释:
运行这段代码后,你会看到以下效果:

初始状态下,只有按钮 A 显示。
点击按钮 A 后,按钮 B 显示并且按钮 A 被禁用。
点击按钮 B 后,按钮 A 显示并且按钮 B 被隐藏。
可视化效果
当你运行这段代码并打开浏览器时,你会看到一个交互式的按钮界面,实现了按钮 A 和按钮 B 之间的切换。
在这里插入图片描述
在这里插入图片描述

13. 切换按钮ToggleButton

from nicegui import ui

class ToggleButton(ui.button):

    def __init__(self, *args, **kwargs) -> None:
        super().__init__(*args, **kwargs)
        self._state = False
        self.on('click', self.toggle)

    def toggle(self) -> None:
        """Toggle the button state."""
        self._state = not self._state
        self.update()

    def update(self) -> None:
        self.props(f'color={"yellow" if self._state else "red"}')
        super().update()

ToggleButton('Toggle me')

ui.run()

14. 异步操作

from nicegui import ui
import asyncio

async def load_data():
    await asyncio.sleep(2)
    print('Data loaded successfully!')
    loading_button.props(remove='loading')

loading_button = ui.button('Load Data', on_click=lambda: asyncio.create_task(load_data()))
loading_button.props('loading')

ui.run()

模拟异步加载数据,并在加载完成后移除按钮上的加载状态。
在这里插入图片描述

15. 等待按钮await

from nicegui import ui  

@ui.page('/')  
async def index():  
    b = ui.button('点击我')  # 创建一个按钮  
    await b.clicked()  # 第一次点击按钮  
    ui.label('开始')  # 显示 "开始"  
    await b.clicked()  # 第二次点击按钮  
    ui.label('继续')  # 显示 "继续"  
    await b.clicked()  # 第三次点击按钮  
    ui.label('完成')  # 显示 "完成"  

ui.run()

await 用于等待按钮点击事件,以顺序处理用户交互并更新界面状态。每次点击都会触发后续的代码逻辑。

四、归纳知识点

(一)button组件样式设定知识点归纳:

在使用 nicegui 框架时,对按钮(Button)组件进行样式定制是非常常见的需求。下面是一些关于如何使用 nicegui 的 Button 组件并对其进行样式设置的方法总结:

  1. 基本样式
    默认样式:按钮默认具有一定的样式,如背景色、边框等。
    文本颜色:可以通过 props 设置文本颜色。
  2. 使用 props 自定义样式
    圆角:rounded
    平面风格:flat
    无边框:outline
    阴影效果:elevated
    填充模式:unelevated
    图标按钮:icon
  3. 颜色设置
    主色:primary
    次色:secondary
    成功色:success
    警告色:warning
    错误色:error
    信息色:info
  4. 大小调整
    小尺寸:small
    正常尺寸:default
    大尺寸:large
  5. 状态样式
    激活状态:active
    禁用状态:disabled
  6. 自定义 CSS 类
    如果上述预设样式不能满足需求,可以使用自定义 CSS 类来进一步定制按钮的外观。例如:
ui.button('点击我', on_click=some_function).classes('bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded')

这里,classes 方法用于添加自定义的 CSS 类,可以控制背景色、悬停效果、文字颜色等。

  1. 添加图标
    按钮上也可以添加图标:
ui.button('点击我', icon='add').props('icon=mdi-plus')

通过以上方法,你可以根据实际项目需求灵活地调整 nicegui 中按钮的样式。注意,具体可用的属性和方法可能会随着库版本更新而有所变化,请参考最新的官方文档获取最准确的信息。

(二)button组件事件知识点归纳:

在 nicegui 框架中,按钮(Button)组件提供了多种事件处理机制,可以帮助开发者实现丰富的交互功能。以下是关于 nicegui 中按钮组件事件的一些知识点归纳:

  1. 点击事件 (on_click)
    这是最常见的事件,当用户点击按钮时触发。可以通过 on_click 参数绑定一个回调函数。

示例代码:

def handle_click():
    print("按钮被点击了!")

ui.button('点击我', on_click=handle_click)
  1. 双击事件 (on_double_click)
    当用户双击按钮时触发。同样可以通过 on_double_click 参数绑定一个回调函数。

示例代码:

def handle_double_click():
    print("按钮被双击了!")

ui.button('双击我', on_double_click=handle_double_click)
  1. 鼠标悬停事件 (on_mouse_enter, on_mouse_leave)
    这些事件分别在鼠标进入按钮区域和离开按钮区域时触发。

示例代码:

def handle_mouse_enter():
    print("鼠标进入按钮区域")

def handle_mouse_leave():
    print("鼠标离开按钮区域")

ui.button('悬停测试', on_mouse_enter=handle_mouse_enter, on_mouse_leave=handle_mouse_leave)
  1. 鼠标按下事件 (on_mouse_down)
    当鼠标在按钮上按下时触发。

示例代码:

def handle_mouse_down():
    print("鼠标在按钮上按下")

ui.button('按下测试', on_mouse_down=handle_mouse_down)
  1. 鼠标释放事件 (on_mouse_up)
    当鼠标在按钮上释放时触发。

示例代码:

def handle_mouse_up():
    print("鼠标在按钮上释放")

ui.button('释放测试', on_mouse_up=handle_mouse_up)
  1. 键盘事件 (on_key_down, on_key_up)
    这些事件分别在键盘按键按下和释放时触发。

示例代码:

def handle_key_down(event):
    print(f"按键 {event.key} 被按下")

def handle_key_up(event):
    print(f"按键 {event.key} 被释放")

ui.button('键盘测试', on_key_down=handle_key_down, on_key_up=handle_key_up)
  1. 其他事件
    还有一些其他常用的事件,如:

on_focus: 当按钮获得焦点时触发。
on_blur: 当按钮失去焦点时触发。
示例代码:

def handle_focus():
    print("按钮获得焦点")

def handle_blur():
    print("按钮失去焦点")

ui.button('焦点测试', on_focus=handle_focus, on_blur=handle_blur)

通过以上事件,你可以实现丰富的按钮交互功能。在实际开发过程中,可以根据具体需求选择合适的事件处理机制,以提升用户体验。注意,具体可用的事件和参数可能会随着库版本更新而有所变化,请参考最新的官方文档获取最准确的信息。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MAUI】CommunityToolkit社区工具包介绍

一、为什么需要声明式开发 .NET的MVVM,始于WPF,很古典,它甚至可能是现代前端框架“声明式开发”的鼻祖。声明式开发,之所以出现,是因为命令式开发在UI层和代码层上无法解耦的问题。如下图所示: 1、命令式开发:后台代码需要调用UI层的控件(label.Text),如果更新UI层…

Bellman-Ford算法和SPFA算法

Bellman-Ford算法 能够处理存在负边权的情况。 算法时间复杂度:O(n*m)&#xff0c;n是顶点数&#xff0c;m是边数。 算法实现: 设s为起点&#xff0c;dis[v]即为s到v的最短距离&#xff0c;pre[v]为v前驱。w[j]是边j的长度&#xff0c;且j连接u、v。 dis[s] 0;dis[v] 0x3…

4款专业电脑数据恢复软件,帮你保障数据安全。

电脑里面会出现的数据丢失场景有很多&#xff0c;像硬盘故障、回收站清空、电脑格式化、系统崩溃、病毒入侵等等&#xff1b;如果发现数据丢失后&#xff0c;建议应停止使用电脑&#xff0c;避免新的数据写入覆盖丢失的数据。然后再尝试进行数据找回&#xff0c;如果想自己进行…

UGUI(六大UI根基组件)

Rect Transform 各种参数 是显示pos还是width/height 还是left/top/right/bottom之类巴拉巴拉&#xff0c;各种混合的展示baby&#xff0c;都是看anchor的设置 pivot的设置影响具体数值 至于blueprint mode &#xff0c;就是用了之后框框不变&#xff0c;who wanna do thi…

从WIFI到NB-IoT,探秘智能门锁的高科技接入方式

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! Hello大家好!我是小米,一个29岁、活力满满、热爱分享技术的小米!今天,我想和大家聊聊一个与智能家居密切相关的技术话题——智能门锁的接入方式。无…

哪个编程工具让你的工作效率翻倍?

文章目录 哪个编程工具让你的工作效率翻倍&#xff1f;1. 编辑器与 IDE&#xff1a;高效编码的基础1.1 Visual Studio Code提升效率的关键功能&#xff1a; 1.2 JetBrains 系列 IDE提升效率的关键功能&#xff1a; 1.3 Vim提升效率的关键功能&#xff1a; 2. 版本控制工具&…

使用Java调用OpenAI API并解析响应:详细教程

使用Java调用OpenAI API并解析响应&#xff1a;详细教程 在现代应用程序中&#xff0c;API调用是一个非常常见的任务。本文将通过一个完整的示例&#xff0c;讲解如何使用Java调用OpenAI的ChatGPT API&#xff0c;并通过ObjectMapper处理JSON响应。本文的示例不仅适用于OpenAI…

习题5 循环

选择题 1、如下程序的运行结果为 【 正确答案: B】。 A.9 B.8 C.7 D.6 2、C语言的for语句中的表达式可以部分或全部省略&#xff0c;但两个 【 正确答案: C】不能省略。 但当三个表达式均省略后&#xff0c;因缺少判断条件&#xff0…

翔云 OCR:发票识别与验真

在数字化时代&#xff0c;高效处理大量文档和数据成为企业和个人的迫切需求。翔云 OCR 作为一款强大的光学字符识别工具&#xff0c;在发票识别及验真方面表现出色&#xff0c;为我们带来了极大的便利。 一、翔云 OCR 简介 翔云 OCR 是一款基于先进的人工智能技术开发的文字识别…

第十一章 缓存之更新/穿透/雪崩/击穿

目录 一、什么是缓存 二、缓存更新策略 2.1. 缓存主动更新策略 2.1.1. Cache Aside模式&#xff08;主流&#xff09;‌ 2.1.2. Read/Write Through模式‌ 2.1‌.3. Write Behind模式‌ 2.1.4. 总结 三、缓存穿透 四、缓存雪崩 五、缓存击穿 5.1. 互斥锁实现 5.1.1…

【从0开始搭建微服务并进行部署】SpringBoot+dubbo+zookeeper

文章目录 说明环境搭建创建项目父模块设置子模块 dubbo-api子模块 dubbo-provider子模块 dubbo-consumer测试项目 docker部署项目完整项目地址 说明 jdk1.8SpringBoot2.x低版本dubbo&#xff1a;请查看之前教程【微服务】SpringBootDubboZooKeeper 实战 关于本教程将采用jdk1…

Windows应急响应-Auto病毒

文章目录 应急背景分析样本开启监控感染病毒查看监控分析病毒行为1.autorun.inf分析2.异常连接3.进程排查4.启动项排查 查杀1.先删掉autorun.inf文件2.使用xuetr杀掉进程3.启动项删除重启排查入侵排查正常流程 应急背景 运维人员准备通过windows共享文档方式为公司员工下发软件…

新版IDEA中Git的使用(四)——解决冲突

说明&#xff1a;之前介绍过新版IDEA中Git的基础操作、分支操作和回滚代码&#xff0c;本文介绍基于新版IDEA&#xff0c;如何解决代码冲突。 避免冲突 解决冲突的最好方法就是不要发生冲突&#xff0c;这里我介绍下面几点&#xff0c;可以避免代码冲突&#xff1b; 时常做pu…

C语言:预编译过程的剖析

目录 一.预定义符号和#define定义常量 二.#define定义宏 三.宏和函数的对比 四、#和##运算符 五、条件编译 在之前&#xff0c;我们已经介绍了.c文件在运行的过程图解&#xff0c;大的方面要经过两个方面。 一、翻译环境 1.预处理&#xff08;预编译&#xff09; 2.编译 3…

广联达 Linkworks办公OA Service.asmx接口存在信息泄露漏洞

漏洞描述 广联达科技股份有限公司以建设工程领域专业应用为核心基础支撑&#xff0c;提供一百余款基于“端云大数据”产品/服务&#xff0c;提供产业大数据、产业新金融等增值服务的数字建筑平台服务商。广联达OA存在信息泄露漏洞&#xff0c;由于某些接口没有鉴权&#xff0c…

干货:京东云GPU服务器性能NVIDIA A30/A10/V100/P40测评

京东云GPU服务器性能如何&#xff1f;京东云GPU云主机提供NVIDIA A30、A10、V100、P40等多款GPU卡&#xff0c;新推出的8卡A30规格&#xff0c;配备24G显存&#xff0c;支持NVLink&#xff0c;更好为深度学习的推理与训练、高性能计算应用提供GPU算力&#xff0c;京东云服务器网…

新个性化时尚解决方案!Prompt2Fashion:自动生成多风格、类型时尚图像数据集。

今天给大家介绍一种自动化生成时尚图像数据的方法Prompt2Fashion。 首先创建了一组描述&#xff0c;比如“适合婚礼的休闲风格服装”&#xff0c;然后用这些描述来指导计算机生成图像。具体来说&#xff0c;他们使用了大型语言模型来写出这些服装的描述&#xff0c;接着将这些描…

JavaSE——面向对象10:抽象类、接口

目录 一、抽象类 (一)抽象类的引出 (二)抽象类基本介绍 (三)注意事项和使用细节 (四)抽象类的最佳实践——模板设计模式 二、接口 (一)接口快速入门 (二)基本介绍 (三)注意事项与使用细节 (四)接口VS继承 (五)接口的多态性 1.多态参数 2.多态数组 3.接口存在多态…

文件上传之%00截断(00截断)以及pikachu靶场

pikachu的文件上传和upload-lab的文件上传 目录 mime type类型 getimagesize 第12关%00截断&#xff0c; 第13关0x00截断 差不多了&#xff0c;今天先学文件上传白名单&#xff0c;在网上看了资料&#xff0c;差不多看懂了&#xff0c;但是还有几个地方需要实验一下&#…

高性能架构—存储高性能

1 &#x1f4ca;关系型数据库 存储技术飞速发展&#xff0c;关系型数据的ACID特性以及强大的SQL查询让其成为各种业务系统的关键和核心存储系统。 很多场景下的高性能设计最核心的就是关系型数据库的设计&#xff0c;很多数据库厂商再优化和提升单个数据库服务器的性能方面做了…