通知#
在屏幕上显示一个通知。#
message:通知内容position:屏幕上的位置("top-left"、"top-right"、"bottom-left"、"bottom-right"、"top"、"bottom"、"left"、"right"或 - -"center",默认为"bottom")close_button:可选的按钮标签,用于关闭通知(默认:False)type:可选类型("positive"、"negative"、"warning"、"info"或"ongoing")color:可选的颜色名称multi_line:启用多行通知
注意:您可以根据 Quasar 的 Notify API 传递其他关键字参数。
from nicegui import ui
ui.button('Say hi!', on_click=lambda: ui.notify('Hi!', close_button='OK'))
# ui.run()
<nicegui.elements.button.Button at 0x7fbfa9a73880>
通知类型#
可以使用不同的类型来指示通知的性质。
from nicegui import ui
ui.button('negative', on_click=lambda: ui.notify('error', type='negative'))
ui.button('positive', on_click=lambda: ui.notify('success', type='positive'))
ui.button('warning', on_click=lambda: ui.notify('warning', type='warning'))
# ui.run()
<nicegui.elements.button.Button at 0x7fbf632806a0>
多行通知#
要允许通知文本跨越多行,只需设置 multi_line=True。如果需要手动换行符(如 \n),您需要定义一个 CSS 样式,并像示例中所示将其传递给通知。
from nicegui import ui
ui.html('<style>.multi-line-notification { white-space: pre-line; }</style>')
ui.button('show', on_click=lambda: ui.notify(
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. \n'
'Hic quisquam non ad sit assumenda consequuntur esse inventore officia. \n'
'Corrupti reiciendis impedit vel, '
'fugit odit quisquam quae porro exercitationem eveniet quasi.',
multi_line=True,
classes='multi-line-notification',
))
# ui.run()
<nicegui.elements.button.Button at 0x7fbf63281810>
通知元素#
在屏幕上显示一个通知。与 ui.notify 不同,此元素允许在通知显示后更新通知消息和其他属性。可以使用 dismiss() 方法移除通知。
message:通知内容position:屏幕上的位置("top-left"、"top-right"、"bottom-left"、"bottom-right"、"top"、"bottom"、"left"、"right"或 - -"center",默认为"bottom")close_button:可选的按钮标签,用于关闭通知(默认:False)type:可选类型("positive"、"negative"、"warning"、"info"或"ongoing")color:可选的颜色名称multi_line:启用多行通知icon:可选的图标名称,以在通知中显示(默认:None)spinner:在通知中显示一个旋转器(默认:False)timeout:可选的超时时间(秒),在此之后通知将被移除(默认:5.0)
注意:您可以根据 Quasar 的 Notify API 传递其他关键字参数。
import asyncio
from nicegui import ui
async def compute():
n = ui.notification(timeout=None)
for i in range(10):
n.message = f'Computing {i/10:.0%}'
n.spinner = True
await asyncio.sleep(0.2)
n.message = 'Done!'
n.spinner = False
await asyncio.sleep(1)
n.dismiss()
ui.button('Compute', on_click=compute)
# ui.run()
<nicegui.elements.button.Button at 0x7fbf63280b80>