有些基本组件的使用方法,很容易能够在官网找到案例和说明。但是有些细节修改可能不大好找,所以记录在这里。

1. 网页title 和 logo

Dash 默认的网页标签页名字和logo是下图这样:
image.png
改变标题只需要在实例化的时候加入 title 参数。

  1. app = dash.Dash(__name__,title = '船舶识别')

修改logo只需要在assets目录下添加 favicon.ico ,默认logo就会被替换。

图片不显示坐标系

  1. fig.update_layout(coloraxis_showscale=False,)

重置html.Button的“n_clicks”属性

问题就是n_click属性会在应用启动之后一直递增,所以不能用判断n_click是否为None来执行你的应用。
对于点击一次button改变应用某些动作的场景,必须改用另一种方法,就是判断这个按钮的状态是否改变。

  1. @app.callback(Output(component_id='my-div', component_property='children'),
  2. [Input('btn-nclicks-1', 'n_clicks'), Input('adding-rows-table', 'data')])
  3. def update_output_div(n_clicks, data):
  4. # if n_clicks is not None"
  5. # something # 点击一次之后,一直会做,不会释放,因为n_click会一直增加,记录点击次数
  6. changed_id = [p['prop_id'] for p in dash.callback_context.triggered][0] # 检查callback状态改变的控件
  7. if 'btn-nclicks-1' in changed_id:
  8. # 点击就做,不点不做
  9. print(data)
  10. else:
  11. print("else loop")

浏览器支持的格式

image.png
而opencv-python竟然不支持X264编码,这不完犊子。
https://github.com/opencv/opencv-python/issues/81
查了半天是liscense的原因,需要自己编译opencv。