31 lines
1.5 KiB
Markdown
31 lines
1.5 KiB
Markdown
# ProgressBar
|
|
|
|
控件功能:显示进度条,用于可视化任务完成的百分比进度。
|
|
类型:普通控件(基于容器控件 HBox 的扩展)
|
|
父类控件:`bricks.HBox`
|
|
|
|
## 初始化参数
|
|
|
|
| 参数名 | 类型 | 说明 |
|
|
|-------------|--------|------|
|
|
| `total_value` | Number | (可选)总任务值,用于计算进度百分比,默认为 100 |
|
|
| `bar_cwidth` | Number | (可选)进度条高度(以行高为单位),默认为 2 |
|
|
|
|
> 注意:实际代码中使用了 `this.bar_cwidth||2`,但 `total_value` 在构造函数中未被使用,可能需在 `set_value` 方法中配合 `current` 和 `total` 使用,当前代码存在变量名错误(`current` 和 `total` 未定义)。
|
|
|
|
## 主要事件
|
|
|
|
* **无显式定义事件**:当前源码中未绑定或触发任何自定义事件。
|
|
* 可能通过继承 `HBox` 拥有基础布局事件,但无额外事件注册。
|
|
|
|
> ⚠️ 代码问题提示:
|
|
> - `set_value` 方法中使用了未定义的变量 `current` 和 `total`,应为 `v` 和 `this.total_value`。
|
|
> - 百分比计算逻辑中的变量名不一致:先计算 `pzt = (current / total) * 100`,后又使用 `percentage`,应统一为 `v / this.total_value`。
|
|
> 建议修正为:
|
|
> ```js
|
|
> set_value(v) {
|
|
> var percentage = this.total_value ? (v / this.total_value) * 100 : 0;
|
|
> percentage = Math.max(0, Math.min(100, percentage));
|
|
> this.text_w.set_style('width', percentage + '%');
|
|
> }
|
|
> ``` |