Я хочу создать слайдер, который появляется при нажатии определенной кнопки. Если я нажму другую кнопку, я хочу, чтобы этот ползунок исчез, и сразу же в том же месте был создан новый ползунок. Например: У меня 2 кнопки: button1 и button2 Если я нажму кнопку 1, slider1 будет создан с xy = 0,5,0,5 с определенным диапазоном значений от a до b. Если я сейчас нажму кнопку 2, slider1 исчезнет, а slider2 будет создан с xy = 0,5,0,5 с другим диапазоном значений c до b.
Я написал сценарий, поэтому я могу создавать эти разные ползунки, но у меня проблема с удалением. Если, например, я нажимаю 2 раза на button1, другой slider1 появляется поверх первого напечатанного slider1. Вы можете помочь мне?
Хорошо, поехали: Этот код сначала определяет 3 разных ползунка (f010, f015, f022), которые установлены невидимыми, и 3 разные кнопки (WR10, WR15, WR22). Ползунки Tje находятся в одной позиции xy. Затем каждая кнопка должна вызывать определенный слайдер, например. Кнопка WR10 -> слайдер f010. Проблема в том, что при нажатии одной кнопки вызываются все 3 ползунка и перезаписывают друг друга.
from __future__ import print_function
from numpy import pi, sin
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button, RadioButtons
from matplotlib.patches import Ellipse
from scipy.optimize import fsolve
#Plot
axis_color = 'lightgoldenrodyellow'
fig = plt.figure(figsize=(20,10))
ax = fig.add_subplot(111)
fig.subplots_adjust(left=0.25, bottom=0.35)
#Define Sliders and set all invisible
f010_slider_ax = fig.add_axes([0.25, 0.25, 0.65, 0.03], axisbg=axis_color)
f010_slider = Slider(f010_slider_ax, 'f0_10 [GHz]', 750.0, 1100.0, valinit=750.0)
f010_slider_ax.set_visible(False)
f015_slider_ax = fig.add_axes([0.25, 0.25, 0.65, 0.03], axisbg=axis_color)
f015_slider = Slider(f015_slider_ax, 'f0_15 [GHz]', 500.0, 750.0, valinit=500.0)
f015_slider_ax.set_visible(False)
f022_slider_ax = fig.add_axes([0.25, 0.25, 0.65, 0.03], axisbg=axis_color)
f022_slider = Slider(f022_slider_ax, 'f0_22 [GHz]', 340.0, 500.0, valinit=340.0)
f022_slider_ax.set_visible(False)
#Define WR buttons
WR10_button_ax = fig.add_axes([0.025, 0.9, 0.05, 0.05])
WR10_button = Button(WR10_button_ax, 'WR1.0:', color=axis_color, hovercolor='0.975')
WR15_button_ax = fig.add_axes([0.025, 0.8, 0.05, 0.05])
WR15_button = Button(WR15_button_ax, 'WR1.5:', color=axis_color, hovercolor='0.975')
WR22_button_ax = fig.add_axes([0.025, 0.7, 0.05, 0.05])
WR22_button = Button(WR22_button_ax, 'WR2.2:', color=axis_color, hovercolor='0.975')
#Define Event on Buttons
def WR10_button_on_clicked(mouse_event):
f010_slider_ax.set_visible(True)
WR10_button.on_clicked(WR10_button_on_clicked)
def WR15_button_on_clicked(mouse_event):
f015_slider_ax.set_visible(True)
WR15_button.on_clicked(WR15_button_on_clicked)
def WR22_button_on_clicked(mouse_event):
f022_slider_ax.set_visible(True)
WR22_button.on_clicked(WR22_button_on_clicked)
plt.show()