Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f6273a0

Browse files
committed
_Buttons: take layout logic to a dedicated _init function
1 parent e7ddffb commit f6273a0

2 files changed

Lines changed: 14 additions & 12 deletions

File tree

lib/matplotlib/tests/test_widgets.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1229,8 +1229,7 @@ def test__buttons_callbacks(ax, widget):
12291229
"button_press_event",
12301230
ax,
12311231
ax.transData.inverted().transform(ax.transAxes.transform(
1232-
# (x, y) of the 0th button defined at
1233-
# `{Check,Radio}Buttons._init_props`
1232+
# (x, y) of the 0th button defined at `_Buttons._init_layout`
12341233
(0.15, 0.5),
12351234
)),
12361235
1,

lib/matplotlib/widgets.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,16 +1057,7 @@ def __init__(self, ax, labels, *, useblit=True, label_props=None, **kwargs):
10571057

10581058
self._useblit = useblit
10591059

1060-
self._buttons_xs = [0.15] * len(labels)
1061-
self._buttons_ys = np.linspace(1, 0, len(labels)+2)[1:-1]
1062-
1063-
label_props = _expand_text_props(label_props)
1064-
1065-
self.labels = [
1066-
ax.text(0.25, y, label, transform=ax.transAxes,
1067-
horizontalalignment="left", verticalalignment="center",
1068-
**props)
1069-
for y, label, props in zip(self._buttons_ys, labels, label_props)]
1060+
self._init_layout(labels, label_props)
10701061
text_size = np.array([text.get_fontsize() for text in self.labels]) / 2
10711062

10721063
self._init_props(text_size, **kwargs)
@@ -1077,6 +1068,18 @@ def __init__(self, ax, labels, *, useblit=True, label_props=None, **kwargs):
10771068

10781069
self._observers = cbook.CallbackRegistry(signals=["clicked"])
10791070

1071+
def _init_layout(self, labels, label_props):
1072+
self._buttons_xs = [0.15] * len(labels)
1073+
self._buttons_ys = np.linspace(1, 0, len(labels)+2)[1:-1]
1074+
1075+
label_props = _expand_text_props(label_props)
1076+
1077+
self.labels = [
1078+
self.ax.text(0.25, y, label, transform=self.ax.transAxes,
1079+
horizontalalignment="left", verticalalignment="center",
1080+
**props)
1081+
for y, label, props in zip(self._buttons_ys, labels, label_props)]
1082+
10801083
def _init_props(self, text_size, **kwargs):
10811084
raise NotImplementedError("This method should be defined in subclasses")
10821085

0 commit comments

Comments
 (0)