如何通过 matplotlib TextBox 小部件中的代码更改文本

2022-01-18 00:00:00 python matplotlib widget

问题描述

我有一个matplotlib小部件文本框如下

I have a matplotlib widget Textbox as follows

temp_descr = 'wow'
self.axLabel = plt.axes([0.7, 0.05, 0.21, 0.075])
self.text_boxLabel = TextBox(self.axLabel, 'Label: ', temp_descr)

一旦设置为初始值,我以后如何更改文本?喜欢

Once it is set to its initial value, how can I later change the text? Like

temp_descr = 'new wow'
self.text_boxLabel.set_text(temp_descr)

但是,这会产生以下错误

However, this gives the following error

AttributeError: 'TextBox' 对象没有属性 'set_text'

AttributeError: 'TextBox' object has no attribute 'set_text'


解决方案

您不仅要设置显示的文本,还要更改内部存储的文本.要一次性完成所有操作,请使用 TextBox.set_val() 方法.

You do not only want to set the text which is shown but also change the text which is internally stored. To do this all at once use the TextBox's .set_val() method.

import matplotlib.pyplot as plt
import matplotlib.widgets

temp_descr = 'wow'
axLabel = plt.axes([0.7, 0.05, 0.21, 0.075])
textbox = matplotlib.widgets.TextBox(axLabel, 'Label: ', temp_descr)

textbox.set_val("jojojo")

plt.show()

相关文章