如何在更改其某些属性后强制重绘小部件?

时间:2017-04-14 10:10:36

标签: matplotlib matplotlib-widget

在与chart实例关联的回调中,我想修改Slider <div class="card" style="height: 100%;"> <div class="card-header">Title</div> <div class="card-block> <chart class="row" style="height: 100%"></chart> </div> </div> .card { display: flex; flex-direction: column; } .card-block { flex: 1; } matplotlib.widgets.Slidervalmin属性,然后重新绘制{ {1}}。当我试图重新绘制它时,没有任何反应。

在回叫完成之前,我调用了valmax,并且在正确更新了图的其余部分时,val看起来和以前一样。我还尝试在Slider的{​​{1}}上调用plt.draw(),再次没有明显变化。

如何在更改其属性后强制重新绘制Slider实例?

Thansk!

更新

这是一个演示该问题的小程序(粗略的对话框)。想要的行为是通过单击单选按钮的不同值,滑块更改值的范围,当前值和标签。相反,当点击“渐变”时,滑块停止响应(不能再拖动),当点击“渐变”或“频道”时,滑块不会更新,尽管呼叫draw()

Axes

1 个答案:

答案 0 :(得分:2)

滑块本身是一个托管和管理某些参数的类。它没有绘制方法。

也就是说,仅仅设置滑块的参数是不够的,你还需要更新滑块所在的轴。最后,这一切总结为完成滑块的步骤进行初始化,这样你就可以简单地调用silder的def uppercase(str_data): ord('str_data') str_data = str_data -32 chr('str_data') return str_data print(uppercase('abcd')) 函数。

我强烈建议使用两个不同的功能,一个用于更改按钮单击时调用的滑块,另一个用于调整滑块值时应该发生的事情。

这是一个有效的例子:

__init__