python - matplotlib.widgets.TextBox : change color

标签 python matplotlib colors widget

有没有办法随时更改 TextBox 文本颜色?我已经尝试过谷歌;我的问题看起来太微不足道了,但我仍然不知所措。

TextBox 方法:

: dir(matplotlib.widgets.TextBox)
Out[63]: 
[
 ...
 'active',
 'begin_typing',
 'connect_event',
 'disconnect',
 'disconnect_events',
 'drawon',
 'eventson',
 'get_active',
 'ignore',
 'on_submit',
 'on_text_change',
 'position_cursor',
 'set_active',
 'set_val',
 'stop_typing']

AxesWidget 父类(super class)方法:

: dir(matplotlib.widgets.AxesWidget)
Out[64]: 
[
 ...
 'active',
 'connect_event',
 'disconnect_events',
 'drawon',
 'eventson',
 'get_active',
 'ignore',
 'set_active']

没有任何暗示。至少,在我看来。

最佳答案

仅部分答案 - 在不了解更完整的应用程序的情况下,这是否对您有帮助并不明显。您可以更改两部分文本的颜色:标签和编辑框。下面展示了如何更改每个内容一次。

import matplotlib.widgets
import matplotlib.pyplot as plt

plt.figure(1)
ax = plt.subplot(111)
tb = matplotlib.widgets.TextBox(ax, "Name:", initial="Jane Doe")
tb.label.set_color('red')      # label color
tb.text_disp.set_color('blue') # text inside the edit box

如果您只是希望标签文本不同,那么这种情况仍然存在。但是,每当编辑框(text_disp)内的文本发生更改时,它就会再次变为黑色。 这是因为小部件重新创建了文本 (by removing and then re-generating,它会再次变成黑色。

source for the text create method没有任何用户可以修改的参数(颜色、字体大小/粗细等)或包含为 TextBox 实例属性。

您可以编写自己的子类来重写此方法。或者也许简单地在输入文本后设置它就足够了?

关于python - matplotlib.widgets.TextBox : change color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49423770/

相关文章:

python - 在Python中读取点文件

python - 在应用 pandas groupby 后向图中添加条形以显示平均值

python - matplotlib 交换 x 轴和 y 轴

html - 如何在不更改边框颜色的情况下更改 Div 中的文本颜色

c# - 如何从图像中的特定颜色中查找像素数?

python - user_login_failed 信号的 Django 日志用户 IP

python - Sqlalchemy:数据库删除错误

python - 如何创建 Basemap 实例并使用不同的 "overlays"重用它?

matplotlib - plt.show()中的一组关键字 "block"如何默认等于True?

r - RGB 矩阵的颜色单元