# WaterfallGallery
瀑布流形式的 gradio Gallery。
- 支持瀑布流展示图片
- 增加点赞按钮,支持图片额外绑定`like`事件
- 增加 action 按钮,支持图片额外绑定`click`事件
- 响应式 columns
## 如何使用
### 基本使用
### 响应式 columns
### 加载更多
### 点赞/点击反馈
## API 及参数列表
以下 API 均为在原有 gradio Gallery 外的额外拓展参数。
### value
接口定义:
```python
GalleryImageType = Union[np.ndarray, _Image.Image, FileData, Path, str]
CaptionedGalleryImageType = Tuple[GalleryImageType, str]
class GalleryImage(GradioModel):
image: Union[FileData, Path, str]
caption: Optional[str] = None
liked: Optional[bool] = None
# custom meta data
meta: Optional[Any] = None
class GalleryData(GradioRootModel):
root: List[GalleryImage]
```
### props
| 属性 | 类型 | 默认值 | 描述 |
| ---------------------- | -------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| has_more | bool | None | 如果为 True,会显示 "加载更多" 按钮 |
| load_more_button_props | dict | None | ”加载更多“按钮属性,同 gradio Button |
| columns | int \| tuple \| dict | 2 | 展示在以下尺寸屏幕(<576px(xs)、<768px(sm)、<992px(md)、<1200px(lg)、<1600px(xl)、>1600px(xll))中在一行显示的图像数量。
- 如果传入 int, 则应用于所有尺寸屏幕;
- 如果传入 tuple, 当给出的断点少于 6 个, 则最后一个断点将用于所有后续断点;
- 如果传入 dict, 则可以以 [xs,sm,md,lg,xl,xll] 为键表示每个尺寸屏幕的图像数量。 |
| gap | tuple \| int | 8 | 图片之间的间隙 (px)。 如果传递一个元组,则第一个值是宽度的间隙,第二个值是高度的间隙。如果传递数字,则宽度和高度的间隙相同 |
| action_label | str | 'Click' | action 按钮的文案。当 `clickable`为 True 时才展示 |
| likeable | bool | None | 是否显示喜欢或不喜欢按钮。 可以通过显示绑定 `.like` 方法自动设置。 |
| clickable | bool | None | 是否显示 action 按钮。 可以通过显示绑定 `.click` 方法自动设置。 |
### event listeners
| 事件 | 描述 |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `mgr.WaterfallGallery.load_more(fn, ···)` | “加载更多”按钮被点击时触发。 |
| `mgr.WaterfallGallery.like(fn, ···)` | 当点赞/点踩按钮被点击时触发,EventData 为:
- index:当前图片索引。
- value:当前图片信息。
- liked:当前图片的喜欢/不喜欢状态,可以为 None,代表用户取消操作。 |
| `mgr.WaterfallGallery.click(fn, ···)` | action 按钮被点击时触发,EventData 为:
- index:当前图片索引。
- value:当前图片信息。 |