如何使用matplotlib小部件塑造按钮?

时间:2019-06-05 17:15:30

标签: python matplotlib button widget

我想平滑按钮的边缘,更改默认的矩形形状。

这是我用来创建按钮的代码:

axImg = plt.axes([0.25, 0.45, 0.2, 0.09])

bnI = Button(axImg, 'Enter', color='0.9')

bnI.hovercolor = "blue"

bnI.label.set_fontsize(18),

1 个答案:

答案 0 :(得分:0)

您不能对按钮本身进行造型,因为它实际上只是一个轴,并且轴是矩形的。 (当然,可以使用不同的轴,例如极轴,但是那将是完全圆形的。)

但是,可以将FancyBboxPatch放入轴中,并给其一些圆角。

import matplotlib.pyplot as plt
from matplotlib.widgets import Button
import matplotlib.patches as mpatches

bttn_ax = plt.axes([0.25, 0.45, 0.2, 0.09])
bttn_ax.set_frame_on(False)

bttn = Button(bttn_ax, 'Enter')
bttn.label.set_fontsize(18)

fancybox = mpatches.FancyBboxPatch((0,0), 1,1, 
                                   edgecolor="black",
                                   facecolor="0.9",
                                   boxstyle="round,pad=0.1", 
                                   mutation_aspect=3, 
                                   transform=bttn_ax.transAxes, clip_on=False)
bttn_ax.add_patch(fancybox)

bttn.on_clicked(lambda x: print("Click!"))

plt.show()

enter image description here

请注意,在这种情况下,悬停将不起作用,因为显示的是补丁而不是轴。