Создание wxSlider с диапазоном в Linux

Я пытаюсь создать слайдер с возможностью выбора диапазона с помощью wxSlider в Python. Он имеет необязательный параметр диапазона, но проблема заключается в следующем:

SL_SELRANGE: Позволяет пользователю выбирать диапазон на ползунке. Только Windows.

И я использую Linux. Я думал, что могу подклассифицировать wxSlider и заставить его работать в Linux, или самостоятельно создать собственный виджет. Проблема в том, что я не уверен, как обойти любой вариант. Любые идеи / указатели / указывающие на меня в правильном направлении, будут оценены.

Я попробовал что-то вроде:

range_slider = wx.Slider(parent, wx.ID_ANY, 0, 0, 100, style=wx.SL_HORIZONTAL | wx.SL_LABELS | wx.SL_SELRANGE) 

но «SL_SELRANGE» ничего не делает в Linux (должен содержать две ручки, выбирать диапазон).

У вас может быть два ползунка; тот, который подтолкнет другого, чтобы он остался ниже, и один останется выше?

Я знаю, что это не одно и то же, извините, но это вариант. Поэтому, когда когда-либо self.minSlider перемещается, вы связываете wx.EVT_SCROLL с функцией, которая будет делать что-то вроде:

 self.minSlider.Bind(wx.EVT_SCROLL, self.respondSliderChange()) def respondSliderChange(self): if self.minSlider.GetValue() >= self.maxSlider.GetValue(): self.maxSlider.SetValue(self.minSlider.GetValue()+1) 

и наоборот для maxSlider.

Кроме того, вы можете посмотреть, как создать пользовательский виджет.

Здесь описано что-то связанное.

В двух словах идея состоит в том, чтобы нарисовать коробку и цветную часть ее, чтобы представлять ваш диапазон. Слева, где ваш пользователь щелкнул левой кнопкой мыши, и справа, где пользователь щелкнул правой кнопкой мыши.

Вместо коробки и раскраски вы могли бы нарисовать некоторые маркеры на линии:

 --------[-----------]--